Page_PreInit没有调用?

我正在运行ASP.NET 4.0项目。

.aspx页面在标题中设置了AutoEventWireup="true"

虽然调用Page_PreInitPage_PreInit不是? 任何人都可以提出错误吗?

 protected void Page_PreInit(object sender, EventArgs e) { Response.Write("bar"); } protected override void OnPreInit(EventArgs e) { Response.Write("foo"); base.OnPreInit(e); } 

Page_PreInit事件触发,如果在事件开始时放置断点并在运行时逐步执行该事件,则可以看到此情况。 字符串“bar”未写入屏幕的原因是它被OnPreInitEvent覆盖。

请参阅下面的代码。 单步执行它,您将注意到它如何进入Page_PreInit ,然后在OnPreInitEvent被覆盖。 如果您注释掉整个OnPreInit事件,您将看到“Page_PreInit”被写入屏幕。

 using System; public partial class _Default : System.Web.UI.Page { string eventName = String.Empty; protected void Page_Load(object sender, EventArgs e) { Response.Write(eventName); } protected void Page_PreInit(object sender, EventArgs e) { eventName = "Page_PreInit"; } protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); eventName = "OnPreInit"; } }