Andreas K.
Andreas K.

Reputation: 33

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??

Upvotes: 3

Views: 1440

Answers (2)

SLaks
SLaks

Reputation: 887807

The Session property is set later in the Page lifecycle, after the Page object is constructed.

Upvotes: 5

Ed B
Ed B

Reputation: 6054

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

It will have Session when run in the HttpContext

Upvotes: 0

Related Questions