如何在ASP.NET vNext MVC 6中实现会话状态

时间:2014-08-01 09:43:01

标签: asp.net-core asp.net-core-mvc

在Visual Studio 2014中,ASP.NET vNext,我正在尝试在MVC 6.I中实现会话状态  我没有在Visual Studio中获得任何Intellisense来实现它。请告诉我如何  使用它。

3 个答案:

答案 0 :(得分:16)

2014年11月2日更新

ASP.NET团队已经开始构建一个新的会话状态中间件,以在ASP.NET vNext中启用会话状态。您可以查看Session repo,其中包含Session middlewaresample

要在应用中启用会话状态,请致电:

app.UseSession();

从中读取/写入:

var some_value = context.Session.GetInt("some_value").Value;
some_value++;
context.Session.SetInt("some_value", some_value);

原始答案

基本上与How to do server side state management in vNext Web Applications相同的问题 - 会话状态尚未在ASP.NET vNext中实现。

正如其他人所说,TempData与会话状态相同,它只是建立在它之上。 (它还没有在ASP.NET vNext中实现。)

答案 1 :(得分:8)

我写了一篇博客文章,概述了How to Implement Sessions in ASP.NET 5, MVC6的详细信息。 针对Beta8进行了更新

归结为:

  • 添加Microsoft.AspNet.Session nuget包。
  • services.AddSession()添加到startup.cs
  • services.AddCaching()添加到startup.cs
  • app.UseSession()添加到startup.cs
  • 在控制器内使用HttpContext.Session
  • 注入IHttpContextAccessor以获取控制器外的HttpContext

答案 2 :(得分:4)

只需安装包

即可
Install-Package Microsoft.AspNet.Session

然后把

app.UseSession();
在你的Startup.cs中

。正如Eilon指出的那样,它将通过

提供
Context.Session.SetString("key", stringValue);