asp.net-mvc - ViewBag 访问性能

标签 asp.net-mvc razor viewbag

在多次访问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/

相关文章:

asp.net-mvc - 如何使用 ViewBag 创建下拉列表?

javascript - 使用 C#(不是控制台应用程序)在网站上提示用户输入

asp.net-mvc - 获取 MVC3 中选中复选框的 ID

asp.net-mvc - MVC3 (Razor) 将模型数据从 View 传递到 Controller

c# - 如何将值分配给变量并将其用于 MVC Razor 中的另一个操作

css - VB.net 通过 MVC 站点中的 ViewBag 传递网格模板区域和网格模板列值

c# - 在 Controller 外设置 ViewData

asp.net-mvc - 将 ASP.NET MVC2 项目升级到 MVC3 并使用混合 View 引擎

mysql - 如何使用 web.config 中存储的连接字符串在 ASP .NET Razor MVC 中制定 MySQL 连接查询

dll - 当前上下文中不存在名称 'ViewBag'