加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – asp.net MVC 3中视图模型的范围

发布时间:2020-12-16 03:53:04 所属栏目:asp.Net 来源:网络整理
导读:我有 read online使用“厨房水槽”模型是不好的做法: Rule #3 – The View dictates the design of the ViewModel. Only what is required to render a View is passed in with the ViewModel. If a Customer object has fifty properties,but one componen
我有 read online使用“厨房水槽”模型是不好的做法:

Rule #3 – The View dictates the design of the ViewModel. Only what is
required to render a View is passed in with the ViewModel.

If a Customer object has fifty properties,but one component only
shows their name,then we create a custom ViewModel type with only
those two properties.

然而,吉米·博加德随后解释这是如何好的,这让我有点质疑.让我的模型只包含一个客户列表是非常容易的,我甚至可以使用我的POCO.

那么现在我可以为网站上的每个页面创建自定义的小视图模型片段?使用Customer属性的每个页面都会获得一个,但当然无法共享,因为某些信息是无关的,例如,如果一个页面使用的是Age而不是Name.两个新的迷你视图模型类对吗?

这是非常耗时的,似乎它会导致一百万个小型自定义视图模型 – 有人可以详细说明这种方法的效用以及为什么更简单的方法是坏的?

解决方法

View模型类不仅可以用于传递值,还可以定义数据类型(数据注释),验证规则和关系,而不是模型中使用的数据类型.我现在想到的一些优点:

>更改用户密码时有不同的验证规则,更改他的基本数据或他的订阅设置.有可能很复杂,在一个模型类中定义所有这些规则.它看起来使用不同的视图模型时更好更清洁.>使用视图模型还可以为您提供性能优势.如果你要显示用户列表,可以使用id和name定义视图模型仅使用索引从数据库中检索它.如果你找回了整个对象并将其传递给视图,您从中传输更多数据数据库比你需要的.>您可以为视图模型定义显示和编辑器模板,并使用html帮助程序在不同页面上重复使用它们.当您为模型POCO定义模板时,情况看起来更糟.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读