如何在.NET MVC 5中存储会话数据

mig*_*eia 0 .net c# asp.net-mvc asp.net-mvc-5

我可以使用HttpContext.ApplicationInstance.Context该类来使用该Session函数存储会话数据吗?或者有更好的方法来做到这一点?

Dar*_*rov 11

通常,会话可用作控制器操作中的属性:

public ActionResult Index()
{
    this.Session["foo"] = "bar";
    return View();
}
Run Code Online (Sandbox Code Playgroud)

由于Session属性属于类型,HttpSessionStateBase因此可以在单元测试中更容易模拟.请不要在HttpContext.Current.Session其他地方看到建议使用静态 .

如果您不在控制器操作中,则可以HttpContextBase使用其Session属性访问会话(如果您具有(几乎在MVC管道的每个部分中)的实例).

  • 为什么应该使用“Session”属性而不是“HttpContext.Current.Session”?我快速搜索了差异,然后得到了[这个](/sf/answers/421488301/) (2认同)