В Visual Studio 2014, ASP.NET vNext, я пытаюсь реализовать Session State в MVC 6.I я не получаю Intellisense в Visual Studio для его реализации. Пожалуйста, предложите мне, как использовать его.
Как реализовать состояние сеанса в ASP.NET vNext MVC 6
Ответ 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";