25

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

4

2 回答 2

46

ViewBag 和 ViewData 仅在当前请求中存在。TempData 是在您使用重定向时使用的东西(并且只有这样):http ://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications states这很明显:

[...] TempData 对象在一种基本情况下运行良好:

  • 在当前和下一个 HTTP 请求之间传递数据
于 2012-08-15T12:17:25.637 回答
1

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

所以要小心捕捉异常。

于 2012-12-16T12:20:50.243 回答