我想用一些额外的东西扩展System.Web.UI.Page-class。 我需要会话变量的值。
问题是Session-object为null ...
public class ExtendedPage : System.Web.UI.Page {
protected foo;
public ExtendedPage() {
this.foo = (int)HttpContext.Current.Session["foo"]; // NullReferenceException
}
}
如果我将带有session-object的部分移动到Load-Event中,一切正常......
public class ExtendedPage : System.Web.UI.Page {
protected foo;
public ExtendedPage() {
this.Load += new EventHandler(ExtendedPage_Load);
}
void ExtendedPage_Load(object sender, EventArgs e) {
this.foo = (int)HttpContext.Current.Session["foo"];
}
}
为什么在第一种情况下会话对象为空?
答案 0 :(得分:5)
构建Session
对象后,Page
属性稍后会在Page lifecycle中设置。
答案 1 :(得分:0)
您必须在.aspx页面中继承ExtendedPage类。
在HttpContext
中运行时会有Session