发布到具有ajax的操作时如何使用RedirectToAction

时间:2013-06-28 23:01:31

标签: ajax asp.net-mvc-3 jquery post

我有以下jQuery:

 $.ajax({
                type: 'POST',
                url: "MyController/MyAction",
                data: $("form").serialize(),
                dataType: "json"
            });

这是MyAction:

if(ModelState.IsValid)
{
   return RedirectToAction("OtherAction", new {id = 5});
}

我在三个不同的地方进行了此设置(三种不同的操作)。在两个动作中我可以重定向就好了。但是在一个动作中我无法重定向。什么都没发生,我只是呆在同一页上。我逐步执行了我的代码,MyAction中的所有行都被点击了,但OtherAction中的断点从未被击中。

我应该做些什么特别的事吗?在我正在/从相同控制器发布的两个实例中。在上面的实例中,jQuery位于HomeControllerMyController

中的操作的页面中

1 个答案:

答案 0 :(得分:1)

这不会影响主页面,因为重定向到操作只会执行重定向并将重定向的响应返回给Ajax调用。

发出ajax请求的页面不会被重定向,因为响应只是被视为任何其他响应。只有一个额外的步骤(重定向)来获得AJAX结果。

如果您希望重定向主页面,可以在回调中处理ajax请求