RedirectToAction无法在特定操作(进程)中工作

时间:2012-12-19 05:59:27

标签: c# ajax model-view-controller

我有一个Ajax调用,它会在控制器中的表单提交上调用名为submit的操作。

就像下面这样:

if (CSConfigurationMgr.IsMobileUrl(Request.UrlReferrer.AbsoluteUri.PathFromURL()))
    return RedirectToAction("home", "mobile", new { success = true});

重定向到主页并显示“谢谢”消息。

我尝试将网址设为xxxxxxx/mobile/home?success=true并按预期工作。

我对于那个条件变得正确并且要返回语句但是我没有被重定向到新页面。

我查了路线,发现没有问题。

我通过将RedirectToAction置于另一个操作中进行检查,它工作正常,我被重定向到新页面。但它在这里不起作用。

错误:

  • Cannot redirect after HTTP headers have been sent:有时会出现(移动浏览器)
  • 没有任何反应,只是停留在同一页上

此外,我试图在firebug中调试。通话结束后,我得到了这个过程:

www.test.com只是我的本地主机及其端口号

POST http://www.test.com/forms/submit这是传递数据的正确途径

GET http://www.test.com/mobile/home?success=true我必须重定向到的路径。它不断显示加载标志,不会从萤火虫中进一步移动。

我怀疑是在发出请求但没有重定向。

1 个答案:

答案 0 :(得分:1)

错误“在发送HTTP标头后无法重定向”意味着您已经开始将HTTP响应返回给客户端。因此,您现在无法重定向它。先在控制器方法中查看它是否向客户端返回任何内容并更早地移动重定向检查。

唯一看起来奇怪的是你在控制器之前有视图(默认是/ {controller} / {view}),但也许你的路线是这样设置的。

相关问题