VIEWDATA和VIEWBAG存储在MVC中的哪个位置?

Man*_*nik 6 asp.net-mvc

我对MVC非常新...在ASP .Net中有状态管理技术,其中viewstate或cookie存储在客户端和会话存储在服务器中.类似地,我们在MVC中有Viewbag,ViewData和TempData(cookie和会话也在那里).我知道来自控制器ViewData的语法存储为

ViewData ["Foo"] ="bar";

ViewBag.Foo ="bar";

在相应的视图中,它被取为

ViewData ["Foo"] ="bar";

@ ViewBag.Foo

我想知道的是ViewData和ViewBag存储在哪里(客户端或服务器或其他地方)?请原谅我,如果这是一个无关紧要的问题,,,,,

Ale*_*exC 10

ViewBagViewData是状态管理的一部分.它们都是允许(主要)从Controller传递到View的数据.

这完全发生在服务器端,但数据"存储"在服务器上的想法是误导性的.这些是瞬态对象,仅在HTTP请求的生命周期内存在.

ViewBag和ViewData的用例是:

从特定位置传输少量数据(例如,控制器以查看视图或视图之间).ViewData和ViewBag对象在以下场景中都能很好地工作:

  • 将查找数据的下拉列表合并到实体中
  • 像购物车一样的组件
  • 窗口小部件,如用户配置文件窗口小部件
  • 少量的汇总数据

来自http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications

尝试避免的一件事是过度使用ViewBag/ViewData.在MVC应用程序中,模型应该是传递给视图而不是其他任何东西的东西.过度使用ViewBag和ViewData是一种糟糕的做法.