首页 新闻 会员 周边

奇怪的MVC重定向问题:Cannot redirect after HTTP headers have been sent

0
悬赏园豆:50 [待解决问题]

在mvc controller action中的重定向代码是这么写的:

if (!Response.IsRequestBeingRedirected)
{
    return new RedirectResult("/posts");
}

虽然加了Response.IsRequestBeingRedirected,但是在某些时候还会出现下面的异常:

System.Web.HttpException (0x80004005): Cannot redirect after HTTP headers have been sent.
   at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
   at System.Web.HttpResponseWrapper.Redirect(String url, Boolean endResponse)

请问如何解决这个问题?

mvc
dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2016-02-29 13:50
< >
分享
所有回答(3)
0

可以尝试如下方法:

(1)将启动压缩属性设置为false

或者

(2)return new RedirectResult("/posts")修改为return content("/posts")

Jeffcky | 园豆:2789 (老鸟四级) | 2016-02-29 14:28

这2个方法解决不了问题

支持(0) 反对(0) dudu | 园豆:31003 (高人七级) | 2016-02-29 16:03
0

Response.RedirectPermanent(strUrl.Replace("://" + Request.Url.Host, "://www." + Request.Url.Host));
我全局这么写

weisp | 园豆:3 (初学一级) | 2016-02-29 18:50
0

这个代码是写在哪儿的 我要看看 是在过滤器 还是在哪儿 

 

我记得 这里是有几个配置的 

是否 后面的覆盖前面的

是否可以复数次执行 等等

有可能是 前面已经跳转了 后面又有哪儿 覆盖了这个结果

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-03-09 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册