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.两个新的迷你视图模型类对吗?
这是非常耗时的,似乎它会导致一百万个小型自定义视图模型 – 有人可以详细说明这种方法的效用以及为什么更简单的方法是坏的?
解决方法
>更改用户密码时有不同的验证规则,更改他的基本数据或他的订阅设置.有可能很复杂,在一个模型类中定义所有这些规则.它看起来使用不同的视图模型时更好更清洁.>使用视图模型还可以为您提供性能优势.如果你要显示用户列表,可以使用id和name定义视图模型仅使用索引从数据库中检索它.如果你找回了整个对象并将其传递给视图,您从中传输更多数据数据库比你需要的.>您可以为视图模型定义显示和编辑器模板,并使用html帮助程序在不同页面上重复使用它们.当您为模型POCO定义模板时,情况看起来更糟.