Asp.net-Mvc-Routing

如何檢查給定路徑是否存在路由(ASP.NET MVC)?

  • October 12, 2011

我有一個本地 URL 列表,我需要確定它們是否是“有效的 MVC 路徑”。如何檢查 URL(路徑)是否映射到 MVC 控制器?

Phil Haack 的 Route Debugger將找到與目前請求匹配的路由,並使用目前 HttpContext 執行此操作。如果可能的話,我想在不建立模擬 HttpContext 的情況下獲取此資訊。

您可以RouteTable.Routes.GetRouteData使用模擬的 HttpContextBase 進行呼叫。

路由在內部使用請求的AppRelativeCurrentExecutionFilePath.

但是,此功能未公開,因此您需要通過HttpContextBase.

您需要創建一個在其請求屬性HttpContextBase中返回實例的類。 該類需要在其屬性中返回以 開頭的路徑。HttpRequestBase
HttpRequestBase``~/``AppRelativeCurrentExecutionFilePath

您不需要實現任何其他屬性,除非它們被IRouteConstraints 使用。

要檢查是否有 MVC 路由,請檢查生成的routeData.Handler is MvcRouteHandler.

引用自:https://stackoverflow.com/questions/4882324