先决条件
1.项目中添加一个Admin的Area
2.Admin下的Controller添加Home
3.默认的Controller中也有Home
出现的问题
1.输入Url根目录无法导航到正确的Home
2.输入Admin的Url也无法导航
解决方案
修改App_Start目录下的RouteConfig文件
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
,
new[] { "WebMonitor.Web.Controllers" } //指定命名空间
);
其中WebMonitor.Web是项目名,很多人的blog中都不提这一点,不知道是为什么。
这时AdminAreaRegistration的内容没有动,
此时访问根目录可以正确导航,但是方位admin时需要在Url后添加 /Home,类似:XXX/Admin/Home才可正确导航。
如何在我们输入XXX/Admin可以正确导航到XXX/Admin/Home?
这时就需要修改AdminAreaRegistration文件
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
默认添加的文件中没有 controller = "Home",需要添加后,定义了默认值才能实现如上所述功能。