asp.net mvc在控制器构建期间的任何时候都可以使用Session吗?

joe*_*rob 4 asp.net-mvc session

我试图在控制器和ControllerContext的构造函数中访问Session变量,它似乎总是为null.

最早的会话变量何时可用?

谢谢!

编辑:示例:

在一个控制器中:

public HomeController()
    {
        MyClass test =   (MyClass)ControllerContext.HttpContext.Session["SessionClass"];
    //ControllerContext always null           
    }
Run Code Online (Sandbox Code Playgroud)

在调试时,controllercontext始终为null.在actionresult重定向到此控制器的控制器中,我有:

Session["SessionClass"] = class;

MyClass test = (MyClass )ControllerContext.HttpContext.Session["SessionClass"]; 
// this works fine! i can get varibale from session

return RedirectToAction("Index", "Home");
Run Code Online (Sandbox Code Playgroud)

那么,ControllerContext在什么时候实际设置?我什么时候可以访问会话变量?

Mau*_*fer 11

覆盖Initialize():

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    base.Initialize(requestContext);
    requestContext.HttpContext.Session["blabla"] = "hello"; // do your stuff
}
Run Code Online (Sandbox Code Playgroud)