Asp.net MVC 3路由表 - 路由顺序

时间:2012-02-06 20:57:06

标签: asp.net asp.net-mvc-3

我的global.asax

中有404路由
    routes.MapRoute(
                    "404", 
                    "{*url}",
                    new { controller = "Error", action = "PageNotFound" })

;

区域内的路线。 如果请求在global.asax中进入路由,则ROUTE T​​ABLE中的路由顺序为:

1)区域路线

2)global.asax路线

3)404路线

但是如果请求进入区域,则ROUTE T​​ABLE中的路由顺序为:¨

1)global.asax路线

2)404路线

3)区域路线

1 个答案:

答案 0 :(得分:1)

路由在默认MVC应用程序中的应用顺序为:

1。)区域 2.)全球 3.)路线表

正如默认代码所示:

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

您会注意到区域及其注册优先于RegisterRoutes方法中注册的路线。为什么?当上面的代码用于注册路由表时,路由在整个路由列表中显示为FIRST。

因此,如果您的代码与下面的代码相同,并且您没有按照正确的路线进行操作,则可能是您在区域或Global.asax中配置路线的顺序。