Asp.net-Mvc-Routing
如何檢查給定路徑是否存在路由(ASP.NET MVC)?
我有一個本地 URL 列表,我需要確定它們是否是“有效的 MVC 路徑”。如何檢查 URL(路徑)是否映射到 MVC 控制器?
Phil Haack 的 Route Debugger將找到與目前請求匹配的路由,並使用目前 HttpContext 執行此操作。如果可能的話,我想在不建立模擬 HttpContext 的情況下獲取此資訊。
您可以
RouteTable.Routes.GetRouteData使用模擬的 HttpContextBase 進行呼叫。路由在內部使用請求的
AppRelativeCurrentExecutionFilePath.但是,此功能未公開,因此您需要通過
HttpContextBase.您需要創建一個在其請求屬性
HttpContextBase中返回實例的類。 該類需要在其屬性中返回以 開頭的路徑。HttpRequestBaseHttpRequestBase``~/``AppRelativeCurrentExecutionFilePath您不需要實現任何其他屬性,除非它們被
IRouteConstraints 使用。要檢查是否有 MVC 路由,請檢查生成的
routeData.Handler is MvcRouteHandler.