miguelbgouveia miguelbgouveia - 7 days ago 13
C# Question

How to store session data in .net MVC 5

Can I use the HttpContext.ApplicationInstance.Context class to to store session data using the Session function?
Or there is a better way to do this?

Answer

Normally the session is available as a property in your controller actions:

public ActionResult Index()
{
    this.Session["foo"] = "bar";
    return View();
}

Since the Session property is of type HttpSessionStateBase it can be more easily mocked in a unit test. Please never use the static HttpContext.Current.Session as you might see suggested elsewhere.

If you are not inside a controller action you can access the session if you have an instance of HttpContextBase (which is almost in every part of the MVC pipeline) using its Session property.

Comments