Asp.net mvc ASP.NET MVC-Html.BeginForm()。我是否可以回发到其他路由并保留现有查询字符串值?
我有一个只有帖子的动作,它有不同的路线。在我的表单中,我需要发布到它,但也要保留我当前拥有的querystring值 初始响应:/my/first/path/?val1=您好 需要发布到:/my/other/path/?val1=您好 当我指定路由时,它似乎只返回路由,而不附加原始页面的querystring值(原因很明显)Asp.net mvc ASP.NET MVC-Html.BeginForm()。我是否可以回发到其他路由并保留现有查询字符串值?,asp.net-mvc,forms,asp.net-mvc-routing,Asp.net Mvc,Forms,Asp.net Mvc Routing,我有一个只有帖子的动作,它有不同的路线。在我的表单中,我需要发布到它,但也要保留我当前拥有的querystring值 初始响应:/my/first/path/?val1=您好 需要发布到:/my/other/path/?val1=您好 当我指定路由时,它似乎只返回路由,而不附加原始页面的querystring值(原因很明显) 是否可以将querystring值干净地附加到表单标记的action属性中?谢谢。您正在尝试同时发布和获取。如果你想工作,你需要输入val1作为隐藏值。POST请求没有查询
是否可以将querystring值干净地附加到表单标记的action属性中?谢谢。您正在尝试同时发布和获取。如果你想工作,你需要输入
val1
作为隐藏值。POST请求没有查询字符串
<input type="hidden" name="val1" value="hello"/>
您不能发布和保留查询字符串值。
如果在发布时需要保留查询字符串值,我建议将它们填充到表单中的隐藏字段中。这与您的要求不完全一样,但我很高兴这样做: html.BeginForm( c=>c.SomeAction(model.SomeValue、model.OtherValue、anyDefaultValueIWant) )
而是使用隐藏字段。我不明白您为什么特别需要它出现在查询字符串中。对不起,我指的是Html.BeginRouteForm()。可以发送post并获取值。我能够创建一个包含querystring的自定义动作值,它们被很好地接受。生成的页面负责处理抓取post和/或get变量。