在多次访问ViewBag中的相同值的View中,将这个值存储在局部变量中比频繁访问ViewBag对象更好吗?
最佳答案
ViewBag
只是 ViewData
的动态包装器。因此,当您编写 ViewBag.Foo
时,您基本上是在查询 ViewData["Foo"]
。但由于这是在运行时完成的动态解析,因此显然需要付出代价。这个成本是您不应该担心的事情,因为它很小,不会显着影响您的应用程序的性能,而且我不会费心将结果缓存到局部变量中。
我会烦恼的是 ViewBag 的使用,如果使用 View 模型,我肯定会放弃它。因此,无需编写 @ViewBag.Foo
,您将拥有 Foo 属性的 View 模型,并且在您的 View 中,您只需使用它 - @Model.Foo
。如您所知,调用属性 getter 将非常快。它不仅速度快,而且您将从 View 中的强类型和智能感知中受益。
关于asp.net-mvc - ViewBag 访问性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12773041/