HttpContext.Current.ApplicationInstance.CompleteRequest 似乎什么也没做。我错过了什么?
例如,尽管在每个有趣的事件期间都会调用 CompleteRequest,但以下所有事件仍然在一个简单的测试页面上运行。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
namespace LifeCycle
{
public partial class _Default_NoMasterPage : System.Web.UI.Page
{
private int count = 0;
protected override void OnInit(EventArgs e)
{
nextLabel("InitBeforeBase");
base.OnInit(e);
HttpContext.Current.ApplicationInstance.CompleteRequest();
nextLabel("Init");
}
protected override void OnInitComplete(EventArgs e)
{
nextLabel("InitCompleteBeforeBase");
base.OnInitComplete(e);
HttpContext.Current.ApplicationInstance.CompleteRequest();
nextLabel("InitComplete");
}
protected override void OnLoad(EventArgs e)
{
nextLabel("OnLoadBeforeBase");
base.OnLoad(e);
HttpContext.Current.ApplicationInstance.CompleteRequest();
nextLabel("OnLoad");
}
protected override void OnLoadComplete(EventArgs e)
{
nextLabel("OnLoadCompleteBeforeBase");
base.OnLoadComplete(e);
HttpContext.Current.ApplicationInstance.CompleteRequest();
nextLabel("OnLoadComplete");
}
protected override void OnPreInit(EventArgs e)
{
// can't add a control to the page during OnPreInit as the other page control doesn't exist yet.
base.OnPreInit(e);
}
private void nextLabel(string eventName)
{
string lbl = "" + ++count + " " + eventName + " at " + DateTime.Now.ToLongTimeString() + "";
System.Web.UI.HtmlControls.HtmlGenericControl c = new HtmlGenericControl("div");
c.InnerText = lbl;
Page.Controls.Add(c);
}
}
}