asp.net mvc url action忽略旧的参数值

时间:2012-03-02 21:41:38

标签: asp.net-mvc asp.net-mvc-routing

我有以下路线:

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”,让客户端填写其余的参数。

我错过了什么?感谢。

1 个答案:

答案 0 :(得分:2)

尝试明确清除路线值:

RoleListUrl = Url.Action("RoleList", "Person", new { Area = "PersonArea", int1 = "", int2 = "", int3 = "" }),