4

我有一个 Ajax 调用,它将调用submit在控制器中提交表单时调用的操作。

就像下面这样:

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

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

我试着只给 url asxxxxxxx/mobile/home?success=true并且它按预期工作。

对于这种情况,我得到了正确的结果并要返回声明,但我没有被重定向到新页面。

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

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

错误:

  • Cannot redirect after HTTP headers have been sent: 有时会出现(移动浏览器)
  • 什么都没有发生,只是停留在同一页面上

此外,我尝试在萤火虫中调试。拨打电话后,我得到了这个过程:

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

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

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

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

4

1 回答 1

1

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

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

于 2012-12-19T07:39:41.807 回答