我正在研究解决方案的路由配置,该解决方案之前有许多不必要的调用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);
变量routes
是RouteCollection
的实例。那么,有什么方法可以确定GridPaging路由是否实际在任何地方使用?另外,Visual Studio指出用于MapRoute调用的重载是the one where the fourth parameter is the string array of namespaces。鉴于null参数可以supposably解析为this overload,我不确定它如何决定该签名。
答案 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