Также см. Этот вопрос SO: Как работает состояние сеанса в MVC 2.0?
Этот ответ содержит хороший пример кода, такой как следующий, о доступе к состоянию сеанса для каждого пользователя из класса контроллера.
// from example
if (Session["QuestionAnswers"] != null)
{
return (List<QuestionAnswer>)Session["QuestionAnswers"];
}
Вы можете использовать обычное Состояние сеанса ASP.NET для хранения сложного объекта для конкретного пользователя.
Вы можете хранить что угодно в состоянии сеанса, включая значение вашего "сложного объекта".
Цитата состояния сеанса MSDN:
Состояние сеанса ASP.NET позволяет вам
сохранение и получение значений для пользователя
как пользователь перемещается по другому
Страницы ASP.NET, составляющие сеть
применение
Следующие цитаты из Скотта Гатри (корпоративного вице-президента в отделе разработчиков Microsoft) поддерживают использование обычного состояния сессии в MVC:
Цитаты Скотту о поддержке MVC и состояния сеанса:
Функции не-пользовательского интерфейса в ASP.NET сегодня как
Аутентификация с помощью форм, Windows
Аутентификация, Членство, Роли, URL
Авторизация, Кэширование, Состояние сеанса ,
Профили, Мониторинг здоровья,
Конфигурация, Компиляция,
Локализация и
HttpModules / HttpHandlers все полностью
Поддержка модели MVC .
- http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx
Хотя, как ты структурируешь
Поток приложений будет другим, я
думаю, вы будете приятно удивлены
по объему знаний перекрываются
который существует . Аутентификация,
Авторизация, Кэширование, Конфигурация,
Компиляция, Состояние сеанса , Профиль
Управление, Мониторинг здоровья,
Администрирование, Развертывание и многие,
многие другие вещи являются именно
то же самое . Представления MVC также являются ASPX-страницами.
(которые используют пользовательские элементы управления .ascx и
.master файлы). Таким образом, концепция повторного использования
там тоже довольно тяжело.
- http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx