如何确定ASP.NET MVC解决方案中是否正在使用映射路由

时间:2015-09-15 15:45:31

标签: c# asp.net asp.net-mvc

我正在研究解决方案的路由配置,该解决方案之前有许多不必要的调用RouteCollection.MapRoute(),基本上可以通过仅更改ActionResult方法来替换默认路由。现在我只缺少默认的一条路线,我很难说它是否在解决方案的任何地方使用。代码现在看起来像这样:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{directory}/{resource}.asmx/{*pathInfo}");

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",  
    new { controller = "Home", action = "Index", id = "" }
);

routes.MapRoute("GridPaging", "{controller}/{action}/{page}", null);

变量routesRouteCollection的实例。那么,有什么方法可以确定GridPaging路由是否实际在任何地方使用?另外,Visual Studio指出用于MapRoute调用的重载是the one where the fourth parameter is the string array of namespaces。鉴于null参数可以supposably解析为this overload,我不确定它如何决定该签名。

2 个答案:

答案 0 :(得分:1)

看一下Phill的帖子here,找到你的应用正在使用的女巫路线。

您的路由的配置方式,如果您使用RouteName,您只能获得GridPaging路由,默认路由分辨率,您将获得默认路由,因为它们基本上具有相同的路径。

答案 1 :(得分:0)

“GridPaging”是路由名称,因此在代码中搜索“GridPaging”应该告诉您路由的使用位置。

如果您想了解更多调用哪条路线,可以安装并使用NuGet中的Route Debugger

Here is a link on how to use Route Debugger

编辑:

如果您使用的是ASP.NET MVC,则可以获得ASP.NET MVC Routing Debugger Visualizer