简体   繁体   中英

Session is null when inherit from System.Web.UI.Page

I want to extend the System.Web.UI.Page-class with some extra stuff. In the ctor I need the value of a session-variable.

The problem is that the Session-object is null...

public class ExtendedPage : System.Web.UI.Page {
   protected foo;   

   public ExtendedPage() {
      this.foo = (int)HttpContext.Current.Session["foo"];   // NullReferenceException
   }
}

If I move the part with the session-object into the Load-Event everything works fine...

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"];
   }
}

Why is the Session-object null in the first case??

在构建Page对象之后,会在Page生命周期中稍后设置Session属性。

You have to inherit the ExtendedPage class in an .aspx Page.

It will have Session when run in the HttpContext

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM