我遇到了一个我有默认 MVC 路由设置的场景。像这样。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后导航到这样的网址
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 路由是否有优先级。