ViewBag访问性能

时间:2012-10-07 21:31:24

标签: asp.net-mvc razor viewbag

在多次从ViewBag访问相同值的视图中,最好将此值存储在局部变量中而不是经常访问ViewBag对象吗?

1 个答案:

答案 0 :(得分:4)

ViewBag只是围绕ViewData的动态包装器。所以当你写ViewBag.Foo时,你基本上是在查询ViewData["Foo"]。但由于这是在运行时完成的动态分辨率,因此显然需要付出代价。这个成本是你不应该担心的,因为它太小了,不会显着影响你的应用程序的性能,我也不会把结果缓存到局部变量中。

我打扰的是使用ViewBag,如​​果查看模型,我肯定会放弃使用它。因此,不是编写@ViewBag.Foo,而是会有一个Foo属性的视图模型,在视图中你将只使用它 - @Model.Foo。正如你所知道的那样,召唤一个属性吸气剂将会非常快速。它不仅速度快,而且您可以从视图中的强类型和智能感知中受益。

相关问题