繁体   English   中英

为什么我们不能在Page_Unload事件上使用Response.Write?

[英]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。 尽管如此,所有页面对象都可用。

请参阅ASP.NET页面生命周期

阅读页面生命周期: http//msdn.microsoft.com/en-us/library/ms178472.aspx

UnLoad在渲染后出现,所以此时您已将所有可能的内容输出到屏幕上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM