我有一个 mvc4/jquerymobile 应用程序,我很难弄清楚为什么在RedirectToRoute(rvd)
从控制器操作返回 a 后,重定向到的 url 没有显示。
我在编辑页面上使用http://localhost/Report/Params/9
. 我编辑表单,提交它,然后Report
控制器Params
[HttpPost] 动作启动。它验证表单值,稍微修改它们,然后将它们中的大部分以及我的控制器(“报告”)和新操作(“渲染”)属性添加到 RouteValueDictionary。
这一切都正确发生,我被带到“渲染”视图,但浏览器中显示的 URL 仍然存在http://localhost/Report/Params/9
我希望显示浏览器 url http://localhost/Report/Params/9?p1=1&p2=2&p3=3
,因为我希望用户能够为参数集添加书签以供以后使用。
我错过了什么?我认为这个问题与 jquerymobile 对提交按钮点击的处理有关。我试图用 data-ajax=false 来缓解这种情况,但它似乎没有任何帮助。
<button type="submit" data-theme="b" name="submit" value="submit-value" data-ajax="false">
Submit
</button>
谢谢
编辑:这是我的重定向功能的近似副本...
public ActionResult Params(FormCollection Params ) {
RouteValueDictionary rvd = new RouteValueDictionary();
// example values //
rvd.Add("controller", "Report");
rvd.Add("action", "Render");
rvd.Add("id", 10);
rvd.Add("p1", 1);
rvd.Add("p2", 2);
rvd.Add("p3", 3);
RedirectToRouteResult rrr = RedirectToRoute(rvd);
return rrr;
}