在重定向到另一个页面时,我收到异常“在HTTP标头发送后无法重定向”

时间:2011-04-13 09:02:26

标签: asp.net

我正在异常

"Cannot redirect after HTTP headers have been sent." 

在做Response.Redirect("Home.aspx")时。

我该如何解决这个问题? 在重定向之前,我尝试过Response.Flush()

3 个答案:

答案 0 :(得分:10)

问题是重定向前的Response.Flush()。使用HTTP,您可以获得一个请求的一个响应。您的浏览器只请求该页面一次,我怀疑您尝试回复两次:

Response.Flush(); //First Response
Response.Redirect("Home.aspx"); //Second Response

因此,Response.Flush()解决问题将解决您的问题。

答案 1 :(得分:0)

在我的情况下,问题的原因是在滚动网格视图中加载数据需要很长时间。在没有准确加载gridview数据之前,我按下重定向按钮。

尝试解决问题可能是:

+减少您的数据获取

加载完成前

+阻止按重定向按钮

答案 2 :(得分:-2)

我只是以一种不同的方式遇到了这个问题。我有两个Response.Redirect调用没有包装在隔离的代码分支中。在Chrome中工作得很好,但IE不喜欢它。这是一个简单的修复,因为我有两个“if”语句。我只是把第二个变成了“其他如果”这样......

if (QueryString("reset") == "1")
{
    // User is resetting password
    Response.Redirect("/Account/ResetPassword.aspx");
}
else if (DataUtils.IsInt(QueryString("id")))
{
    // User is authenticating...completing signup
    Response.Redirect("/Account/Activate.aspx");
}