2

私のWebアプリケーションでは、次のようなルートがあります:

http://server/requests/info/{id}-{guidPart} (a string)

だから私は賢くてルートを作ると思ったので、そうしました:

routes.MapRoute(
    name: "Info",
    url: "{controller}/{action}/{id}-{guidPart}",
                defaults: new { controller = "Requests", action = "Info", id = 0, guidPart = "" }
);

次に、なぜデフォルトを指定する必要があるのか​​ 、最後の部分を除いてすべて修正しないのはなぜだと思いました:

routes.MapRoute(
    name: "Info",
    url: "requests/info/{id}-{guidPart}"
);

しかし、次のような URL に移動すると:

http://server/requests/info/123-abc123

それは失敗し、次のように言います:

404 リソースが見つかりません。

私が間違っていることに関するヒントはありますか?

4

1 に答える 1

1

静的ルートを使用できますが、デフォルトでルーティングするコントローラーとアクションを指定する必要があります。

routes.MapRoute(
name: "Info",
url: "requests/info/{id}-{guidPart}",
defaults: new { controller = "Requests", action = "Info", id = 0, guidPart = ""}); 

これと上記のデフォルトの違いは、この UriTemplate は「requests/info/」で始まる Uri のみを照合しようとすることです。

于 2013-01-08T13:57:41.613 に答える