我有一个没有注册区域的网站。然后我注册了一个名为“MyNewArea
”的区域。
现在我的博客等默认网站链接不再有效。
所以我现在有一个区域文件夹,其中包含一个区域,以及我在第一时间创建项目时的默认文件夹。
我所在的地区AreaRegistration
上课;
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"MyArea_default",
"{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
但看起来它与
的默认值冲突routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我需要做些什么才能让该区域与默认站点和控制器一起使用?
答案 0 :(得分:2)
你是对的,那个映射的路线会发生冲突(在“冲突”的意义上,因为它将首先匹配)。您需要将映射的区域路径更改为:
context.MapRoute(
"MyArea_default",
"MyArea/{controller}/{action}/{id}",
new { controller = "MyAreaController", action = "Index", id = UrlParameter.Optional }
);
在您添加此区域(以及区域路线)后,您的网址出现故障的原因,它使用您的区域路由进行处理MyArea
区域中不存在。
答案 1 :(得分:1)
将新区域路径表更改为:
context.MapRoute(
"MyArea_default",
"MyNewArea/{action}/{id}",
new { controller = "MyNewArea", action = "Index", id = UrlParameter.Optional }
);