В чем разница между Session и ViewData в Asp.net-MVC? - PullRequest
6 голосов
/ 07 ноября 2010

Когда я должен использовать один против другого?Я хочу кэшировать определенный объект при запуске и повторно использовать вокруг приложения.Что звучит как лучшее решение (ViewData или Session)?

1 Ответ

12 голосов
/ 07 ноября 2010

ViewData - это объект для каждого запроса, используемый для отправки информации из контроллера в представление.
Каждый вызов действия получает свой собственный ViewData; ViewData не сохраняется за пределами представления.

Состояние сеанса - это контейнер хранения для каждого пользователя, который позволяет хранить данные для конкретного сеанса пользователя (идентифицируемого cookie)

Если вы хотите поделиться глобальным объектом, вам, вероятно, следует сделать его одноэлементным (в свойстве static) или перевести его в состояние приложения.
Сделайте уверенным , что это потокобезопасно. (Или используйте поле [ThreadStatic] осторожно)

...