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

时间:2012-04-11 15:49:17

标签: asp.net-mvc asp.net-mvc-3 razor

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

2 个答案:

答案 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消失。

所以要小心捕捉异常。

相关问题