7

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

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

4 回答 4

6

母版页继承: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

因此,现在可以猜到,母版页的行为和本质上被视为一个控件,并且具有与其他 asp.net 服务器控件类似的事件。

一种建议阅读是this.

于 2013-12-24T12:16:07.680 回答
1

Masterpage 没有 PreInit 方法。

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

1、创建一个通用的页面基类,供其他所有页面继承,在该类中设置主题属性; http://www.odetocode.com/Articles/450.aspx

于 2013-12-24T10:12:56.363 回答
0

事件的顺序如下所示;

  1. 用户控制初始化
  2. 母版页初始化
  3. 内容页面初始化

  4. 加载内容页面加载

  5. 加载母版页加载
  6. LOAD 用户控制负载

  7. 内容页面渲染

  8. 母版页预渲染
  9. 用户控制渲染

有关示例的更多详细信息,请参阅以下链接;

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

于 2014-11-10T04:22:03.563 回答
0

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

public class MasterPageModule: IHttpModule
{    
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
 //your code
}
}


<httpModules>
   <addname="MasterPageModule"type="MasterPageModule"/>
</httpModules>
于 2019-03-05T15:20:31.463 回答