这里是地势。像大多数人一样,我有我的领域对象和我的视图模型。我喜欢使用视图模型的想法,因为它允许专门为给定的视图上下文创建模型,而无需更改我的业务对象。
我遇到的问题是在我的域对象上定义类型级别验证并将这些规则发送给客户端。在这种情况下,假设我使用数据注释来描述验证规则,当我将数据从域对象移动到视图模型时,视图模型不再知道它应该让接口执行什么验证(因为验证是在域对象上定义)。
使用 MVC 2,您可以让它根据当前对象的验证规则自动执行客户端/服务器端验证。但是因为验证规则是在域对象而不是视图模型上定义的,所以我必须在视图模型上复制验证规则才能使其正常工作。
其他人如何处理此类问题?我的想法是除了将域对象的数据映射到视图模型之外,我们还需要跨验证规则进行映射,但是我还没有真正看到其他人谈论这个问题...... Brad Wilson 最近谈到了这个问题最后,但还没有真正解决域对象和视图模型上的规则重复问题……您的想法是什么?
干杯安东尼