How to use Session Variable in MVC

asp.net-mvc, asp.net-mvc-3, asp.net-mvc-4, c#, session

Solution

The thread that starts the Application is not the request thread used when the user makes a request to the web page.

That means when you set in the `Application_Start`, you're not setting it for any user.

You want to set the session on `Session_Start` event.

Edit:

Add a new event to your global.asax.cs file called `Session_Start` and remove the session related stuff from `Application_Start`

protected void Session_Start(Object sender, EventArgs e) 
{
   int temp = 4;
   HttpContext.Current.Session.Add("_SessionCompany",temp);
}

This should fix your issue.

Problem

I have declared Session variable in "Global.asax" file as, ``` protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); int temp=4; HttpContext.Current.Session.Add("_SessionCompany",temp); } ``` And want to use this Session Variable into My Controller's action as, ``` public ActionResult Index() { var test = this.Session["_SessionCompany"]; return View(); } ``` But I am Getting Exception While accessing the Session Variable. Please help me on this that How can I access the Session Variable into my controller's Action. I am getting an Exception like `"Object Reference not set to an Insatance of an object"` in `Application_Start` in Global.asax on line ``` HttpContext.Current.Session.Add("_SessionCompany",temp); ```

Original source