ASP.NET主页事件

时间:2010-12-06 17:08:40

标签: asp.net events master-pages

我正在订阅pag​​e_load事件中其中一个页面的主页中的事件,即我有代码

this.Master.Event1 += new Event1EventHandler(Master_Event1);

在page_load事件中。

如果我不取消订阅此事件会导致内存泄漏吗?什么是取消订阅的适当方式?我应该在page_unload事件中这样做吗?这将处理退出页面的用户操作,但如果用户关闭浏览器,那么处理它的正确方法是什么? global.asax中的Session_end?

由于

2 个答案:

答案 0 :(得分:1)

事件处理程序列表本质上是弱引用,因此不会导致内存泄漏。您没有明确删除所有Click以及任何处理程序,是吗?

此外,Unload事件与关闭浏览器窗口的用户无关。对我来说,这听起来像是你误解了网络和/或ASP.NET的一些基础知识。

答案 1 :(得分:0)

与Windows Forms或WPF不同,ASP.NET是无状态的(与其他所有Web服务器解决方案一样)。简而言之,这意味着当GET请求进入时,Web服务器(IIS)处理请求并根据您构建的aspx页面生成一个html页面(使用或不使用母版页)。

因此,当您将事件处理程序挂钩到从主页面触发的事件时,您只能在同一请求,内容页面或可能加载到该内容页面的任何用户控件中处理它。

为什么要在主页面中触发任何事件?如果您告诉我们更多关于您正在寻找的功能,我们可能会提供替代方案 - 甚至可能更好 - 解决方案。

在以下MSDN页面上阅读有关ASP.NET的更多信息,或者只是谷歌自己知道:)

ASP.NET Page Life Cycle Overview

Events in ASP.NET Master and Content Pages