ASP.NET MVC - Html.BeginForm()。我可以回发到不同的路由并保留现有的查询字符串值吗?

时间:2010-09-16 14:06:55

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

我有一个只有不同路线的后期操作。在我的表单中,我需要发布它,但也保留我目前拥有的查询字符串值。

初始回复:/ my / first / path /?val1 = hello

需要发布到:/ my / other / path /?val1 = hello

当我指定一个路由时,它当然只返回路由并且不附加我原始页面的查询字符串值(出于显而易见的原因)。

是否可以将查询字符串值干净地附加到表单标记的action属性中?感谢。

3 个答案:

答案 0 :(得分:1)

你正在尝试同时发布和获取。如果您希望自己工作,则需要输入val1作为隐藏值。 POST请求没有查询字符串。

<input type="hidden" name="val1" value="hello"/>

答案 1 :(得分:1)

您无法发布和保留查询字符串值 如果您在发布时需要保留查询字符串值,我建议您在表单中的隐藏字段中填充它们。

答案 2 :(得分:1)

不完全是你问的问题,但我很高兴这样做:

html.BeginForm(      c =&gt; c.SomeAction(model.SomeValue,model.OtherValue,anyDefaultValueIWant)      )

使用隐藏字段代替。我不明白为什么你特别需要它在查询字符串中。