У меня есть RedirectToAction как возвращаемое значение в контроллере, и, на мой взгляд, я использую ViewBag. Хотя это известная проблема, что ViewBag становится пустым после RedirectToAction. У меня возникла проблема, когда я повторно инициализирую значения ViewBag в моем перегруженном контроллере в методе OnActionExecuting. ViewBag снова пуст. Но проблема в том, что на моем локальном ПК (win7) он работает нормально, но на сервере веб-хостинга (win 2008) он сбой. Так может кто-нибудь помочь сказать, что может это сделать? Может быть, это настройка или что-то еще?
ViewBag имеет значение NULL после RedirectToAction (+ повторная инициализация ViewBag)
Ответ 1
Исключительно глубокий внутренний слой данных, который был неправильно захвачен и тем самым предотвращен от распространения, но вызвал исчезновение ViewBag.
Поэтому будьте осторожны с улавливанием исключений.
Ответ 2
ViewBag и ViewData сохраняют текущий запрос. TempData - это то, что нужно использовать при использовании переадресаций (и только тогда): http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications четко говорит об этом:
[...] объект TempData хорошо работает в одном базовом сценарии:
- Передача данных между текущими и следующими HTTP-запросами