Использование сеанса с контроллера

Я добавил Session в свой startup.cs с помощью промежуточного программного обеспечения app.UseSession, и в том же файле запуска я могу вызвать context.Session.SetString("key", "value"), я даже могу получить значение в том же файле startup.cs с context.Session.GetString("key"), но теперь, если я не хочу делать то же самое с контроллера, это не сработает, если я это сделаю:

Request.HttpContext.Session.GetString("Key")

Я получаю сообщение об ошибке, сообщающее, что у сеанса нет метода GetString, я уже добавил Microsoft.AspNet.Session в операторы использования.

Итак, как я могу получить и установить значения для сеанса из контроллеров?

Спасибо.


person user2070369    schedule 10.03.2015    source источник


Ответы (2)


Методы расширения состояния сеанса находятся в пространстве имен Microsoft.AspNet.Http: https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNet.Http.Extensions/SessionCollectionExtensions.cs#L7

person Eilon    schedule 10.03.2015

Если вы находитесь в контроллере, вы должны использовать унаследованное свойство Context:

Context.Session.GetString("key");

Подробнее об этом можно прочитать здесь: Использование сеансов и HttpContext в ASP.NET 5 и MVC6

person Ben Cull    schedule 16.07.2015