私は、デフォルトのMVCルート設定があったシナリオに遭遇しました。そのようです。そして、このページでは、このようなMVCルーティングパラメータの優先順位
domain/controller/action/1234
としてURLに移動
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
私はその後、特定のイベントの後、同じページに、異なるパラメータを使用してナビゲートしました。そのようです。
var id = $(this).data("id");
var url = "@Url.Action("action", "controller", new { area = ""})";
var params = $.param({id: id, vrnsearch: true});
var fullUrl = url += "?" + params;
window.location.href = fullUrl;
私は、URLがまだ同じIDをURLに保持していて、そうしたパラメータを付けていることに気付きました。
domain/controller/action/1234?id=4321&vrnsearch=true
今、私の質問は、それはURLからまたはパラメータからIDの値を使用する必要がある場合の優先順位をオーバー決定する方法があります。
実際に私の問題の回避策を見つけました。下のURLを使ってIDを削除し、パラメータを使用します。
@Url.Action("action","controller", new {id = "", area = ""})
ただし、パラメータとURLのルーティングに優先順位があるかどうか不思議でした。