为什么母版页在ASP.NET中没有PreInit事件?

时间:2013-12-24 10:10:13

标签: asp.net master-pages preinit

以下是母版页与内容页面合并时发生事件的顺序:

Content page PreInit event.
Master page controls Init event.
Content controls Init event.
Master page Init event.
Content page Init event.
Content page Load event.
Master page Load event.
Master page controls Load event.
Content page controls Load event.
Content page PreRender event.
Master page PreRender event.
Master page controls PreRender event.
Content page controls PreRender event.
Master page controls Unload event.
Content page controls Unload event.
Master page Unload event.
Content page Unload event.

但为什么母版页在PreInit中没有ASP.NET个事件?

4 个答案:

答案 0 :(得分:4)

母版页继承:System.Web.UI.MasterPage并且根据此MasterPage类的设计,没有为此类定义此类PreInit事件。

母版页从Control类派生,如下面的层次结构所示:

System.Object
  System.Web.UI.Control
    System.Web.UI.TemplateControl
      System.Web.UI.UserControl
        System.Web.UI.MasterPage

因此,正如现在可以猜到的那样,Master页面的行为和实质上被视为一个控件,并且具有与其他asp.net服务器控件类似的事件。

一个建议的阅读是this

答案 1 :(得分:1)

  

Masterpage没有PreInit方法。

     

您可以采用多种替代方案。

1,为要继承的所有其他页面创建公共基页类,在该类中设置theme属性; http://www.odetocode.com/Articles/450.aspx

答案 2 :(得分:0)

事件的发生将如下所示;

  1. 用户控制初始化
  2. Master Page init
  3. 内容页面init

  4. LOAd内容页面加载

  5. LOAd母版页面加载
  6. LOAd用户控制加载

  7. 内容页面渲染

  8. 母版预渲染
  9. 用户控制渲染
  10. 有关示例的详细信息,请参阅以下链接;

    http://getmscode.blogspot.in/2014/11/sequence-of-events-in-master-page-and.html

答案 3 :(得分:0)

与UrlMapping模型相同,创建一个应由IHttpModule生成的类,然后将其引用添加到Web.config

merge