首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MVC2中将默认名称"Areas“更改为"<MyOwnAreaName>Areas”?

如何在MVC2中将默认名称"Areas“更改为"<MyOwnAreaName>Areas”?
EN

Stack Overflow用户
提问于 2011-02-21 00:54:23
回答 1查看 397关注 0票数 0

我使用的是MVC2,我需要将默认名称"Areas“更改为<MyOwnAreaName>

不能将默认名称"Areas“更改为我自己的名称吗??

有没有人能帮忙给出解决方案,提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-02-21 01:03:50

你可以写一个custom virtual path provider。以下是您可能有兴趣覆盖的默认值:

代码语言:javascript
复制
MasterLocationFormats = new[] 
{
    "~/Views/{1}/{0}.master",
    "~/Views/Shared/{0}.master"
};

AreaMasterLocationFormats = new[] 
{
    "~/Areas/{2}/Views/{1}/{0}.master",
    "~/Areas/{2}/Views/Shared/{0}.master",
};

ViewLocationFormats = new[] 
{
    "~/Views/{1}/{0}.aspx",
    "~/Views/{1}/{0}.ascx",
    "~/Views/Shared/{0}.aspx",
    "~/Views/Shared/{0}.ascx"
};

AreaViewLocationFormats = new[] 
{
    "~/Areas/{2}/Views/{1}/{0}.aspx",
    "~/Areas/{2}/Views/{1}/{0}.ascx",
    "~/Areas/{2}/Views/Shared/{0}.aspx",
    "~/Areas/{2}/Views/Shared/{0}.ascx",
};

下面是在您的例子中可能出现的情况:

代码语言:javascript
复制
public class CustomViewEngine : WebFormViewEngine
{
    public CustomViewEngine()
    {
        AreaMasterLocationFormats = new[] 
        {
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.master",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.master",
        };

        AreaViewLocationFormats = new[] 
        {
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.aspx",
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.ascx",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.aspx",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.ascx",
        };
    }
}

然后在Application_Start中注册此自定义引擎

代码语言:javascript
复制
protected void Application_Start()
{
    ...
    ViewEngines.Engines.Add(new CustomViewEngine());
}

现在,您可以将区域文件放在~/MyOwnAreaName中。

备注/建议:尽可能多地遵守ASP.NET MVC约定,只有在严格必要的情况下才覆盖它们。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5058461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档