先决条件
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",需要添加后,定义了默认值才能实现如上所述功能。