ASP.NET MVC:在表单提交时添加到查询字符串

时间:2009-05-24 00:31:55

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

我正在ASP.NET MVC中构建一个网格,我有以下问题:

  • 在网格上方,我有一个列选择器,可让人们自定义显示的列。这是一个带有提交按钮的表单,以便人们可以一次添加/删除多个列,而无需通过多个回发。
  • 在网格下面我有分页。这是分页动作链接(一个href的)。

alt text http://thomasstock.net/mvcget.jpg

当用户添加/删除列时会发生什么,表单会被提交到http://localhost:56156/?columnsToDisplay=EmployeeId,当然网格会跳回到第1页。我想将网格保留在用户当前所在的页面上。 所以我需要一种方法将当前的查询字符串参数包含在表单的action属性中。

另一种方式:我需要一种方法来对动作链接做同样的事情。但这不太必要,因为我总是可以用按钮替换a href并将它们放在一个表单中。但我宁愿不这样做。

我正在寻找没有javascript的解决方案!我可以在javascript中自行完成,但我希望我的网格能够在禁用javascript的浏览器上完美运行。

感谢任何帮助。

编辑: 哦,是的,为了使它更难,我也在寻找没有cookie /会话变量的解决方案。 : - )

1 个答案:

答案 0 :(得分:5)

您需要将以下行添加到列选择器表单

<input type="hidden" name="page" value="<%=Request.QueryString["page"]%>" />