默认区域路由不能在mvc中工作5

问题描述:

我添加了默认控制器和操作名称,但仍然缺省路由不适用于该区域。这里是我的代码:默认区域路由不能在mvc中工作5

AreaRegistration.cs

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     "Admin_default", 
     "Admin/{controller}/{action}/{id}", 
     new { controller ="LogIn", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

RouteConfig.asax

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.LowercaseUrls = true; 
    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

当我去http://webapplocal/admin/我得到下面的错误: 403禁止:未配置默认文档对于请求的URL,并且目录浏览在服务器上未启用。

+0

感谢编辑 –

+1

可能区分大小写。尝试/管理员/虽然我不明白你为什么不在RouteConfig中映射它 – Steve

+0

@steve路由不区分大小写。 –

我添加了RouteTable.Routes.RouteExistingFiles = true;在RouteConfig.cs中,它工作

这看起来像一个类似的问题,我跑进:ASP.NET MVC 4 Parameters Separated by Forward Slashes "/" not passing args properly

我建议加入图路线到同一位置作为默认图路线,在RouteConfig.asax。这是因为路由是顺序敏感的,并且当第一个路由失败时,可能永远不会查看单独的路由例程。

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.LowercaseUrls = true; 

    routes.MapRoute(
     "Admin_default", 
     "Admin/{controller}/{action}/{id}", 
     new { controller ="LogIn", action = "Login", id = UrlParameter.Optional } 
    ); 
    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 
+0

在尝试你的解决方案后仍然得到同样的错误 –

+0

糟糕。我实际上没有{controller} - 更新。 – Thumper

+0

你怎么没有控制器大声笑呢?现在我在管理员下的所有观点都给出了一个mtg中的404:D –