3

これは私のglobal.asaxです(ルートの登録)

  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がサーバーに再要求された URL である 場合はServer/{serverId}/Instances/{instanceId}/NewDatabase/、一致するパターンになります。上記のリクエストに一致するエントリを確認するにはどうすればよいですか?

ありがとう

4

3 に答える 3

7

RouteTable.Routes.GetRouteData(HttpContextBase)

于 2012-07-24T15:15:47.713 に答える
1

RouteDebugger nuget パッケージをインストールし、web.config で有効にします。これにより、ヒットする可能性のあるルートとその理由がわかります。

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

あなたがしなければならないのは、あなたのURLに移動することだけです. RouteDebugger は、ページの下部にルート情報を追加します。

于 2012-07-23T12:01:33.923 に答える
0

これがあなたが探しているものかどうかはわかりませんが、カスタム条件が一致しない限り、ルートが一致しないようにするカスタム ルート制約を作成できます。

ブール値を返す Match メソッドを実装できます。false を返すと、制約に関連付けられたルートはブラウザーの要求と一致しません。このメソッドには RouteValueDictionary があるため、そこからルート値を確認できます。

詳細については、この URL を参照してください - http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-a-custom-route-constraint-cs

于 2012-07-24T15:12:39.693 に答える