2012-12-20 3 views
1

Я создаю приложение MVC 4. Мне нужно сохранить объект во время всего Запроса. Его нужно использовать в разных объектах. Моя идея заключалась в том, чтобы хранить его в HttpContext.Current.Items. Но когда я обновляю страницу, мой добавленный объект все еще существует в коллекции Items.MVC 4: HttpContext.Current.Items

Я думал, что он будет удален, и если я правильно помню, я использовал эту технику в других проектах. Я использую Visual Studio 2012, IIS Express и MVC 4 (.Net 4.5 Framework).

ответ

0

Если вы хотите использовать объект для одного контроллера -> вызов вызова, вы можете использовать ViewBag. ViewBag - это динамически типизированный класс, который по существу позволяет вам хранить все, что вы хотели бы в нем, просто используя синтаксис ViewBag.MyProperty. Затем вы можете получить сохраненные данные в представлении просто путем доступа к @ViewBag.MyProperty.

Как уже упоминалось, ViewBag подходит для одного вызова (это похоже на TempData). Если вы хотите, чтобы эти данные были переданы обратно на сервер для использования в последующем запросе (что, следовательно, означает, что он используется в нескольких вызовах), вы, вероятно, захотите использовать Session вместо этого.

+0

Спасибо за ваш ответ, но я действительно ищу разум, почему коллекции предметов не очищаются. HttpContext, вероятно, единственное, что я могу использовать, потому что я создаю его во внешнем проекте, который на самом деле не знает, что он используется в приложении Asp.net или MVC. –

+0

Как вы устанавливаете элементы в контексте? –

+0

HttpContext.Current.Items ["Key"] = value –

Смежные вопросы