Подтвердить что ты не робот

Как реализовать состояние сеанса в ASP.NET vNext MVC 6

В Visual Studio 2014, ASP.NET vNext, я пытаюсь реализовать Session State в MVC 6.I  я не получаю Intellisense в Visual Studio для его реализации. Пожалуйста, предложите мне, как  использовать его.

4b9b3361

Ответ 1

Обновление 11/2/2014

Команда ASP.NET приступила к созданию нового промежуточного ПО состояния сеанса, чтобы включить состояние сеанса в ASP.NET vNext. Вы можете проверить Session repo, в котором есть промежуточное ПО сеанса, а также sample.

Чтобы включить состояние сеанса в приложении, вызовите:

app.UseSession();

И читать/писать из него:

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

Оригинальный ответ

В основном такой же вопрос, как Как управлять состоянием на стороне сервера в vNext веб-приложениях - состояние сеанса еще не реализовано в ASP.NET vNext.

Как отмечали другие, TempData - это не то же самое, что и состояние сеанса, оно просто построено поверх него. (И он еще не реализован в ASP.NET vNext.)

Ответ 2

Я написал сообщение в блоге с описанием деталей Как выполнить сеансы в ASP.NET 5, MVC6. Обновлено для бета-версии

Это сводится к:

  • Добавить Microsoft.AspNet.Session пакет nuget.
  • Добавить services.AddSession() в startup.cs
  • Добавить services.AddCaching() в startup.cs
  • Добавить app.UseSession() в startup.cs
  • Использовать внутренние контроллеры HttpContext.Session
  • Вставить IHttpContextAccessor, чтобы перейти к HttpContext за пределами контроллеров

Ответ 3

Просто установите пакет

Install-Package Microsoft.AspNet.Session

а затем поместите

app.UseSession();

в вашем Startup.cs. Как отметил Эйлон, он будет доступен через

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

Ответ 4

Используйте TempData, который является эквивалентом Session в ASP.NET MVC.

TempData["sample"]="test";