[英]Why we can't use Response.Write on Page_Unload Event?
我在Page_Unload
事件上使用Respose.Write
,然后我收到错误
在这种情况下无法获得响应。
我可以知道为什么我们不能使用?
protected void Page_Unload(object sender, System.EventArgs e)
{
Response.Write(" hi ");
}
从ASP.NET页面生命周期中的MSDN文章:
在卸载阶段,页面及其控件已呈现,因此您无法对响应流进行进一步更改。 如果您尝试调用Response.Write方法等方法,该页面将引发异常 。
所以你要做的事实上根据文档实际上是不受支持的。
这在逻辑上是有道理的。 在卸载页面时,浏览器无需从该页面进一步响应。 这实际上就是执行清理的地方。
MSDN上还提到了一些常见用例:
对于用户控件:
...使用此事件对特定控件进行最终清理,例如关闭特定于控件的数据库连接。
对于整个页面:
...使用此事件执行最终清理工作,例如关闭打开的文件和数据库连接,或完成日志记录或其他特定于请求的任务。
这是因为在呈现页面后触发了Unload
事件。 页面已经完成,在前往浏览器的路上,不再有可以写入的响应流。
在将页面发送回客户端之后,将发生Unload事件。 现在写入响应为时已晚。
请参阅ASP.NET页面生命周期文档。
请记住 - 在卸载阶段,页面及其控件已呈现,因此您无法对响应流进行进一步更改。 如果您尝试调用Response.Write
方法等方法,该页面将引发exception
。
此时页面已经以HTML格式呈现,并且无法修改HTML。 尽管如此,所有页面对象都可用。
阅读页面生命周期: http : //msdn.microsoft.com/en-us/library/ms178472.aspx
UnLoad在渲染后出现,所以此时您已将所有可能的内容输出到屏幕上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.