微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有 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定义模板时,情况看起来更糟.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐