で定義されたルートがいくつかありますGlobal.asax.cs
routes.MapRoute(
"Custom",
"party/get/{a}~{b}",
new { controller = "party", action = "get" },
new { a = @"\d+", b = @"\d+" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Party", action = "Index", id = UrlParameter.Optional }
);
リクエストが の場合、http://localhost:58684/party/get/37~12
それは最初のルートと一致し、 と の値はそれぞれとa
です。b
37
12
リクエストが次の場合http://localhost:58684/party/get/37~-12
、最初のルートはこのリクエストに一致しません。これ-12
は、制約@"\d+"
に一致せず、デフォルト ルートがリクエストに一致するためです (この動作は望ましくありません)。
何らかの制約によりリクエストが 1 つのルートに一致しない場合、リクエストに一致する他の次のルートを回避するにはどうすればよいですか? 次のルートに制約を設定することに興味はありません。