Asp.net MVC 3路由表 - 路由

问题描述:

令我有我的Global.asaxAsp.net MVC 3路由表 - 路由

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

; 
地区

和路线404路线。 如果请求是进入的global.asax路线,则在路由表中的路由的顺序是:

1)面积路线

2)的global.asax路由

3)404路由

但是,如果请求是进入的区域,则在路由表中的路由的顺序是:¨

1)的global.asax路由

2)4 04路线

3)面积路线

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

1)所在区域 2.)全球 3.)路由表

如此处所示的默认代码所示:

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

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

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

因此,如果您的代码与下面的代码相同,而且您未按照正确的路线,则可能按照您在Area或Global.asax中配置路线的顺序排列。

+0

但我不明白,我采取了打印屏幕和更新帖子 – 2012-02-06 21:12:17

+0

这将是我们很难测试这一点。我们没有所有的路由或您试图命中测试的URL或您的路由未配置的配置。从您对web服务器的描述(未列出的IIS版本)的性能与另一个web服务器(IIS?或者在Cassini服务器中构建的Visual Studios?)。路线表中显示了多少总路线?你的图片显示#20,但不显示它后面是否有更多。你需要帮助给我们更多的信息。 – 2012-02-06 21:48:52