ant*_*nyv 16 validation asp.net-mvc design-patterns viewmodel
这是土地的平原.像大多数人一样,我有我的域对象,我有我的视图模型.我喜欢使用视图模型的想法,因为它允许专门为给定的视图上下文创建模型,而无需更改我的业务对象.
我遇到的问题是在我的域对象上定义类型级别验证并将这些规则提供给客户端.在这种情况下,假设我使用数据注释来描述验证规则,当我将数据从域对象移动到视图模型时,视图模型不再知道应该让接口执行哪些验证(因为验证是定义回域对象).
使用MVC 2,您可以根据当前对象的验证规则自动执行客户端/服务器端验证.但是因为验证规则是在域对象而不是视图模型上定义的,所以我必须在视图模型上复制验证规则才能使其工作.
其他人如何处理这类问题?我的想法是,除了将数据从域对象映射到视图模型之外,我们还需要映射验证规则,但我还没有真正看到其他人谈论这个问题... Brad Wilson最近谈到了这个问题最后,但没有真正解决域对象和视图模型上的规则重复...你有什么想法?
干杯安东尼
DataAnnotation 属性用于验证输入并向最终用户提供 UI 反馈。这确实是他们唯一的预期用途。我对 UI 对象和业务对象使用不同的验证策略,因此 DA 验证属性仅最终出现在向用户显示的模型上。