【发布时间】:2011-01-30 15:09:07
【问题描述】:
在 ASP.NET 中,我经常使用 Response.Redirect 将最终用户重定向到我系统上的另一个页面。我总是将第二个参数设置为 true 以立即结束响应。
在我的一生中,我想不出任何人会将该参数设置为 false 的原因。当最终用户的浏览器将立即被重定向到不同的页面时,继续生成页面有什么意义?
【问题讨论】:
标签: asp.net
在 ASP.NET 中,我经常使用 Response.Redirect 将最终用户重定向到我系统上的另一个页面。我总是将第二个参数设置为 true 以立即结束响应。
在我的一生中,我想不出任何人会将该参数设置为 false 的原因。当最终用户的浏览器将立即被重定向到不同的页面时,继续生成页面有什么意义?
【问题讨论】:
标签: asp.net
Response.Redirect 并不意味着页面生命周期在服务器端已经结束,它只是向客户端发送一个标头。
也许您想先重定向用户,然后将他上传的大量数据保存到数据库中?
HttpServerUtility.Transfer 顺便说一句确实终止了页面生命周期,但它不发送标头,它只是提供不同的页面。
【讨论】:
Response.Redirect(..., true);
客户端将收到新页面的重定向,处理将因线程中止而停止
Response.Redirect(..., false);
客户端将被发送新页面的重定向,当前页面将被允许继续处理,也许需要做一些清理工作或其他事情
在任何一种情况下,客户端都不会看到当前页面的结果
【讨论】:
为什么不呢。在页面的进程被杀死之前,您可能需要在此页面上完成一些事情。例如,写入文件然后对其进行整理。或者在数据库中进行一些更改,并正确结束连接。
【讨论】:
Response.Rediect("any page like Default.aspx");
当控件到达此语句时,我们的页面将跳转到括号中指定的页面。该页面可能是 .aspx、.asp.htm 等...
【讨论】: