在Response.Redirect()之后调用Response.End()

时间:2011-01-13 16:28:58

标签: asp.net

是否有必要在Response.Redirect(url)

之后调用Response.End()

更新

感谢所有答案。因为有些答案说这是必要的而有些人说没有,所以我搜索了更多内容并在msdn的评论中找到了以下内容:

重定向调用End,在完成时引发ThreadAbortException异常。

5 个答案:

答案 0 :(得分:11)

Response.Redirect为您致电Response.End

我不同意其良好做法 - 这会导致误导性代码。

MSDN

  

重定向调用End,在完成时引发ThreadAbortException异常。

HTTP法则解释说,一旦发送响应,服务器就完成了(不再调用代码)

答案 1 :(得分:4)

Response.Redirect允许您调用Response.End。

Response.Redirect(url, true);

答案 2 :(得分:2)

没有必要调用Response.End,事实上如果你认为你需要结束响应,请使用Response.Redirect的重载(url,endResponse)

答案 3 :(得分:0)

如果您传递true作为第二个参数,则不会:http://msdn.microsoft.com/en-us/library/a8wa7sdt(v=vs.80).aspx

答案 4 :(得分:-1)

在响应结束时调用Response.End()仍然是一个好习惯。它当然不会伤害任何东西。