在使用Areas区域时,如果使用默认路由表,将造成路由表冲突,这种情况需要修改一下区域内<区域名称>AreaRegistration.cs和/App_Start/RouteConfig.asax,分别为路由加上命名空间限制:
/Areas/<区域名称>/<区域名称>AreaRegistration.cs
context.MapRoute(
"Admin_default"
,
"Admin/{controller}/{action}/{id}"
,
new
{ action =
"Index"
, id = UrlParameter.Optional },
new
string
[] {
"MyMvcAreasDemo.Areas.Admin.Controllers"
} //重点要添加这个
);
/Global.asax.cs
routes.MapRoute(
//Default Route
"Default"
,
// Route name
"{controller}/{action}/{id}"
,
// URL with parameters
new
{ controller =
"Home"
, action =
"Index"
, id = UrlParameter.Optional },
// Parameter defaults
new
string
[] {
"MyMvcAreasDemo.Controllers"
}//重点要添加这个
);
访问区域内的Action时使用@Html.ActionLink("后台管理", "Index","Login", new { area = "" })