我们将所有DataAnnotations放在我们的Model类Customer上。然后,我们将Customer的一个实例作为相关ViewModel的一个属性以及一些针对Countries的查找列表,并在View中显示。迄今为止都是很好的。将DataAnnotation属性应用于Model Model中的ViewModel
然后,我们阅读SO和其他消息来源,我们不应该将我们的整个Customer模型对象传递给View,原因是仅仅为View提供最低限度的需求,更重要的是(为了我们) ModelBinding可能存在的恶意回发可能会导致问题,这些回发会添加其他信息来更改我们的模型属性,否则这些属性在视图中不可用。
我们如何从模型对象中获取所有这些DataAnnotation属性,并将可能减少的ViewModel属性放在悬崖上而不会将DRY原理抛出?
此外,我们是否认为我们不应该使用TryUpdateModel来对付我们从数据库中提取的实体?我想我们的选择是使用TryUpdateModel并传递一个排除列表的属性,这对我来说看起来并不是那么优雅,因为列表只是一个字符串类型的参数。或者,也许我们应该废除TryUpdateModel并使用类型更安全的AutoMapper之类的工具?
感谢您对这些问题的任何想法。