1

在 asp.net mvc 中,如果我在 ViewData 中推入字典或对象数组并在我的视图中读取它,与创建具有相同数据结构的视图模型类相比,是否存在性能差异或其他考虑因素,或者我应该期望相同的响应时间?

4

2 回答 2

2

响应时间将是最短的,并且不会真正对性能产生重大影响。
它甚至会降低您的表现,而且非常重要hacky,因为您必须大量使用装箱和拆箱,这最终会失败。

然而,视图模型是向appropriate视图提供模型数据的方式,因为它为您提供了更多使用的可能性:

它提供:

  • ViewModels 的节省使用
  • 简单的模型验证(即使是带有 的Html.EnableClientSideValidation()
  • 强类型视图(您将在拆箱后实现这一点..)
  • 不需要调整的自动生成的视图(当您使用 T4 模板时很棒)-> 当您对模型进行调整时,它将为您节省大量时间..

最重要的是。整个框架都建立在这些小工具之上,这些小工具可为您的旅程提供支持。

现在去破解一些代码!:-]

于 2010-06-01T22:57:20.270 回答
0

如果您在视图结束时将 ViewData 转换回您的字典,那么是的,性能会受到影响。

此外,您现在正在将代码引入视图。视图应该几乎没有代码。

您的 View 可以从一个类继承是有原因的。用它。ViewData 应该只用于一个小字符串,比如可能的页面标题或其他东西。

我只是在这里修复一个项目,其中没有视图继承自模型,而是将 ViewData 用于列表等。有时一个视图中有 15 个。该死的东西太慢了,但是通过用模型替换 ViewData,我们正在追回速度。

于 2010-06-01T22:44:01.727 回答