将查询参数添加到当前URL客户端

时间:2013-06-05 22:20:24

标签: asp.net-mvc

我感到有些困惑,感觉这应该是死的简单。 (ASP.NET MVC3)

我们有一个名为“产品/列表”的动作。 我们在页面上还有一个文本框,名为“Expiry date”。 现在,如果这是空白的,我们不会使用它,如果填写完毕,我们会在此之后选择有效期的产品。

根据选定的到期日期,还有一个“更新页面”按钮。

这需要添加到查询字符串(或替换),这似乎很简单;

$(button).bind('click', ...
  window.location.href = '@Url.Action(...)?ExpiryDate=' + ExpiryDate;
)

它有效,但对我来说,这看起来很糟糕,并且添加新参数真的很烦人。

我们无法使用@Url.Action(..., new { ExpiryDate=... }),因为在使用文本框后需要在客户端完成此操作。

此外,我们想要使用提交按钮和HttpPost动作;这不是帖子,它是视图的更新(加上它打破了浏览器历史记录)。

我很可能错过了一些东西;什么是这样做的首选方式?

1 个答案:

答案 0 :(得分:1)

将ExpiryDate输入包装在一个表单中(称之为expiryDate)并在其上提交表单

您可以在操作方法中选择GET或POST作为请求VERB,您可以使用表单集合来检查null expiryDate。

或者在MVC中使用ParameterBinding,有一个名为expiryDate的参数,并检查它是否为null。 (你可能必须让它可以为空)

相关问题