我有以下路线:
context.MapRoute
(
"PersonArea_tripleInt",
"PersonArea/{controller}/{action}/{int1}/{int2}/{int3}",
new { controller = "Person", action = "Index" }, new { int1 = new IntConstraint(), int2 = new IntConstraint(), int3 = new IntConstraint() }
);
我在我的控制器中使用这样的:
RoleListUrl = Url.Action("RoleList", "Person", new { Area = "PersonArea" }),
要生成此网址:“/ PersonArea / Person / RoleList”
在我看来,我的下拉列表将填充int1,int2和int3值。我在客户端使用JavaScript来填写URL的其余部分:
“/ PersonArea /人/的RoleList / 12 /76分之43”
第一次这很好用,但是当页面重新加载时,在我的控制器中创建基本URL时会重新使用旧值(12,43,76)。因此,当用户与下拉列表交互时,会在客户端上创建以下URL:
“/ PersonArea /人/的RoleList / 12/43 /88分之76/78分之154”
如何让Url.Action在服务器的后续帖子中忽略旧值(12,43,76),以便客户端可以构建正确的URL?我正在使用硬编码控制器中的基本URL(“/ PersonArea / Person / RoleList /”)。
我只希望控制器每次都生成“/ PersonArea / Person / RoleList”,让客户端填写其余的参数。
我错过了什么?感谢。
答案 0 :(得分:2)
尝试明确清除路线值:
RoleListUrl = Url.Action("RoleList", "Person", new { Area = "PersonArea", int1 = "", int2 = "", int3 = "" }),