我感到有些困惑,感觉这应该是死的简单。 (ASP.NET MVC3)
我们有一个名为“产品/列表”的动作。 我们在页面上还有一个文本框,名为“Expiry date”。 现在,如果这是空白的,我们不会使用它,如果填写完毕,我们会在此之后选择有效期的产品。
根据选定的到期日期,还有一个“更新页面”按钮。
这需要添加到查询字符串(或替换),这似乎很简单;
$(button).bind('click', ...
window.location.href = '@Url.Action(...)?ExpiryDate=' + ExpiryDate;
)
它有效,但对我来说,这看起来很糟糕,并且添加新参数真的很烦人。
我们无法使用@Url.Action(..., new { ExpiryDate=... })
,因为在使用文本框后需要在客户端完成此操作。
此外,我们不想要使用提交按钮和HttpPost动作;这不是帖子,它是视图的更新(加上它打破了浏览器历史记录)。
我很可能错过了一些东西;什么是这样做的首选方式?
答案 0 :(得分:1)
将ExpiryDate输入包装在一个表单中(称之为expiryDate)并在其上提交表单
您可以在操作方法中选择GET或POST作为请求VERB,您可以使用表单集合来检查null expiryDate。
或者在MVC中使用ParameterBinding,有一个名为expiryDate的参数,并检查它是否为null。 (你可能必须让它可以为空)