了解ASP.NET Web Page的生命周期对于一个做WEB开发的工程师来说很有必要,尤其是用于编写自己的control的时候。
ASP.NET Web Page的生命周期可以基本分为以下几个阶段:
1. Page request
本页面被请求时发生在web page生命周期之前, 当有一个页面被请求时,ASP.NET引擎要判断一下这个页面是否需要经过编译或者直接通过此页面的缓冲版本直接发给请求者。
2. Start
在这阶段,Page的Request,Response,IsPostBack,UICulture 属性被适当设置。
3. Page initialization
在此阶段,每一个control的UniqueID属性被设置,页面的主题也被应用,如果此页面是回传页面,即Page的IsPostBack属性为true,那么页面里各个控件的新的值和ViewState还没有在此阶段被恢复。
4. Load
在此阶段,如果页面是回传页面,择页面里各个控件的新的值和ViewState将被恢复或设置。
5. Validation
在此阶段,页面中验证控件调用自己的Validate方法进行验证以便设置自己的IsValid属性,因为验证控件是在客户端和服务器端都要进行验证的。
6. Postback event handling
在此阶段所有的委托事件将被调用,我们所有的事件处理代码是在此时被调用的。
7. Rendering
在此阶段Page调用每个控件的Render方法将各个控件对应的html文本流写到Response的OutputStream属性中,在此阶段之前,每个控件将再次保存各自的ViewState,因此我们还是有最后一次机会在Page的PreRender方法中改变控件的ViewState属性的。
8. Unload
在此阶段,当初为Page及每个控件建立的实体都将被删除,资源被释放。