This question already has answers here:
How to get RouteData by URL?

(2个答案)


5年前关闭。





我有一个本地URL列表,我需要确定它们是否为“有效的MVC路径”。如何检查URL(路径)是否映射到MVC控制器?

Phil Haack's Route Debugger将找到与当前请求匹配的路由,并使用当前HttpContext进行匹配。我想在不建立模拟HttpContext的情况下获取此信息-如果可能的话。

最佳答案

您可以使用模拟的HttpContextBase调用RouteTable.Routes.GetRouteData

使用请求的AppRelativeCurrentExecutionFilePath在内部对路由进行匹配。
但是,此功能未公开,因此您需要传递HttpContextBase

您需要创建一个HttpContextBase类,该类在其request属性中返回一个HttpRequestBase实例。
HttpRequestBase类需要在其~/属性中返回以AppRelativeCurrentExecutionFilePath开头的路径。

您不需要实现任何其他属性,除非它们被IRouteConstraint使用。

要检查您是否有MVC路由,请检查生成的routeData.Handler is MvcRouteHandler

关于asp.net-mvc-routing - 如何检查给定路径的路由(ASP.NET MVC)是否存在? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4882324/

10-12 00:33
查看更多