ASP.NET MVC Долгоживущий сложный объект - PullRequest
1 голос
/ 20 октября 2010

Название немного сложное, но оно подходит для моей проблемы.У меня есть сложный объект, который действует больше как сервис, который мне нужно представить в рамках сеанса пользователя.Большая часть приложения будет существовать на одной или двух страницах, и многочисленные вызовы Ajax для динамического взаимодействия со службой.Я все еще привыкаю к ​​MVC, так что извините за невежество, если решение простое.Как мне предоставить экземпляр службы для каждого сеанса моим контроллерам?

Заранее спасибо!

1 Ответ

0 голосов
/ 20 октября 2010

Также см. Этот вопрос 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...