是否可以重命名区域文件夹?在这种情况下,visual studio和razor会找到正确的观看路径吗?
答案 0 :(得分:3)
是的,这是可能的!让我们轻松关注将一个区域从Foo重命名为Bar的任务。
从以下位置编辑BarAreaRegistration.cs文件:
public override string AreaName
{
get
{
return "Foo";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Foo_default",
"Foo/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
到:
public override string AreaName
{
get
{
return "Bar";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Bar_default",
"Bar/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
将类名称空间从名称空间xxxxx.Foo重命名为xxxxx.Bar
替换Bar文件夹中每个控制器的命名空间
在需要时用视图中的条替换Foo(通常在使用特定区域布局时获得绝对路径
经测试的MVC> 4.0
希望这有帮助
答案 1 :(得分:1)
是的,可以在MVC中重命名Areas文件夹。这是Razor View Engine查找区域视图的位置。在Global.asax文件中添加以下代码。现在,View Engine将在〜/ Modules / HelloArea / Views / Hello / Index.cshtml中搜索区域视图,而不是〜/ Areas / HelloArea / Views / Hello / Index.cshtml
RazorViewEngine viewEngine = new RazorViewEngine();
viewEngine.AreaMasterLocationFormats =
viewEngine.AreaPartialViewLocationFormats =
viewEngine.AreaViewLocationFormats =
new string[] {
"~/Modules/{2}/Views/{1}/{0}.cshtml",
"~/Modules/{2}/Views/Shared/{1}/{0}.cshtml"};
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(viewEngine);