我将RedirectToAction作为控制器中的返回值,在我的视图中,我使用ViewBag。虽然在RedirectToAction之后ViewBag变空是一个众所周知的问题。我在OnActionExecuting方法中重载初始化控制器中的ViewBag值时遇到问题。 ViewBag再次为空。 但问题是,在我的本地PC(win7)上,它工作正常,但在网络托管服务器(win 2008)上它崩溃了。那么有人可以帮助说出导致这种情况的原因吗?也许这是一个设置或什么?
答案 0 :(得分:43)
ViewBag和ViewData仅在当前请求中存活。 TempData是您在使用重定向时使用的东西(仅限于此):http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications明确说明:
[...] TempData对象在一个基本场景中运行良好:
- 在当前和下一个HTTP请求之间传递数据
答案 1 :(得分:1)
内部数据层内部有一个异常被错误捕获,从而阻止了传播但导致ViewBag消失。
所以要小心捕捉异常。