RedirectToAction(+重新初始化ViewBag)后ViewBag为NULL

dru*_*mel 23 asp.net-mvc razor asp.net-mvc-3

我将RedirectToAction作为控制器中的返回值,在我的视图中我使用ViewBag.虽然在RedirectToAction之后ViewBag变空是一个众所周知的问题.我在OnActionExecuting方法中重载初始化控制器中的ViewBag值时遇到问题.ViewBag再次为空.但问题是,在我的本地PC(win7)上,它工作正常,但在网络托管服务器(win 2008)上它崩溃了.那么有人可以帮助说出导致这种情况的原因吗?也许这是一个设置或什么?

Eri*_*oen 44

ViewBag和ViewData仅在当前请求中存活.TempData是您在使用重定向时使用的东西(仅限于此):http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications states这很清楚:

[...] TempData对象在一个基本场景中运行良好:

  • 在当前和下一个HTTP请求之间传递数据


dru*_*mel 1

数据层深处存在异常,该异常被错误捕获,从而阻止了传播,但导致 ViewBag 消失。

所以要小心异常捕获。