默认区域路由在 mvc 5 中不起作用

Default area route not working in 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 forbidden: 没有为请求配置默认文档URL,服务器上没有启用目录浏览。

这看起来像我 运行 遇到的类似问题:

我建议在 RouteConfig.asax 中将 MapRoute 添加到与默认 MapRoute 相同的位置。这是因为路由是顺序敏感的,当第一个路由失败时,您的单独路由例程可能永远不会被查看。

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 }
    );
}

我添加了RouteTable.Routes.RouteExistingFiles = true;在 RouteConfig.cs 中有效