2012-07-23 96 views
2

的請求得到RouteCollection這是我的Global.asax(註冊路線)如何在ASP.NET MVC 4

routes.MapRoute("NewDatabase", 
      "Server/{serverId}/Instances/{instanceId}/NewDatabase/", 
      new { controller = "Server", action = "NewDatabase" } 
      ); 

      routes.MapRoute(
      "Instance", 
      "Server/{id}/Instances/{instanceId}/Databases", 
      new { controller = "Server", action = "Databases", id = "id",instanceId="instanceId" } 
      ); 

      routes.MapRoute(
      "Database", 
      "Server/{id}/Instances", 
      new { controller = "Server", action = "Instances", id = "id" } 
      ); 

如果xyz.com/Server/12/Instance/1/NewDatabase將是reuested URL到服務器, Server/{serverId}/Instances/{instanceId}/NewDatabase/將匹配模式。 我如何知道哪些條目符合上述要求?

感謝

回答

1

安裝RouteDebugger NuGet包並啓用它在你的web.config。這告訴你哪些路線可以被擊中以及爲什麼。

<add key="RouteDebugger:Enabled" value="true" /> 

您只需導航到您的網址即可。 RouteDebugger會將路線信息添加到頁面底部。

+0

有任何建造方法? – kbvishnu 2012-07-23 12:12:58

+0

@VeeKeyBee。不是我知道如果。但只需要幾分鐘就可以完成上述操作。你有沒有理由不能? – 2012-07-23 12:16:21

0

我不確定這是否是您要查找的內容,但是您可以創建一個自定義路由約束,使您可以防止匹配路由,除非某些自定義條件匹配。

您可以實現Match方法,它返回一個布爾值。如果返回false,則與約束關聯的路由將與瀏覽器請求不匹配。此方法具有RouteValueDictionary,因此您可以從那裏檢查路由值。

看到此URL,以獲取更多信息 - http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-a-custom-route-constraint-cs

4

RouteTable.Routes.GetRouteData(HttpContextBase)

+0

我從httpcontest得到了一些東西。將在我的辦公時間更新 – kbvishnu 2012-07-24 16:12:23