我正在异常
"Cannot redirect after HTTP headers have been sent."
在做Response.Redirect("Home.aspx")
时。
我该如何解决这个问题?
在重定向之前,我尝试过Response.Flush()
。
答案 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");
}