代码之家  ›  专栏  ›  技术社区  ›  Dan TheCodeJunkie

使用ASP.NETMVC从JQuery帖子中丢失上下文

  •  0
  • Dan TheCodeJunkie  · 技术社区  · 16 年前

    我在页面上有一个JQuery对话框,它调用如下内容:

    $.post("/MyController/MyAction", { myKey: key} //...
    

    这成功地实现了:

    [HttpPost]
    public ActionResult MyAction(int myKey)
    {
       //do some stuff
       return RedirectToAction("AnotherAction");       
    }
    

    问题是RedirectToAction对webbrowser没有影响。我猜这是因为JQuery帖子有点不一样,所以它不知道在哪里发送响应?如何让浏览器加载新响应?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Mark Redman    16 年前

    $.post 正在执行ajax post,并且操作不会重定向。

    如果要重新检测,为什么不直接提交表单,而不需要ajax呢。

    $.get 并返回一个JsonResult来指示成功/失败,并使用jQuery/javascipt重定向。

    像这样:

    在这里,您可以设置OK或ERR作为结果,并添加任何对象作为“item”,它可以是视图上使用的对象,也可以是错误消息、重定向到的url等

    [HttpPost] 
    public JsonResult MyAction(int myKey) 
    { 
       //do some stuff 
       return new JsonResult { Data = new { Item = item, Result = "OK/ERR" } };
    }