1

我有一个 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;
}
4

0 回答 0