3

デフォルトの MVC ルートが設定されているシナリオに出くわしました。そのようです。

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

次に、そのようなURLに移動します

domain/controller/action/1234

このページでは、同じページに移動していましたが、特定のイベントの後に異なるパラメーターを使用していました. そのようです。

    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はまだURLに同じIDを保持していて、そのようにパラメーターを添付していることに気付きました。

domain/controller/action/1234?id=4321&vrnsearch=true

ここで私の質問は、URL またはパラメーターから id の値を使用する必要があるかどうかの優先順位を決定する方法があるかどうかです。

以下を使用して、問題の回避策/修正を実際に見つけました。これにより、URLからIDが削除され、パラメーターのみが使用されます。

@Url.Action("action","controller", new {id = "", area = ""})

ただし、パラメーターと URL ルーティングに優先順位があるかどうかは興味がありました。

4

1 に答える 1