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