常见场景:
为了展示目的,分层领域模型被映射到平面视图模型中。
我在我的领域中设置了完整的验证,并希望避免将视图模型映射到领域对象,仅仅是为了找出某个属性是否无效。我也不想在我的视图模型中重复我的验证逻辑。
这里有一些好的实践方法:
我反对为视图模型和领域对象都使用接口,因为视图模型通常是字符串和平面的,而领域对象经常是嵌套的并且有许多其他数据类型的属性。
我正在考虑一些可插拔的验证器,它将足够聪明,能够同时验证领域对象和视图模型,但对于实现持怀疑态度。
但为了简单起见,我倾向于采用以下方法:
服务器端验证仅在领域模型中进行;视图模型不会被验证,但是数据将通过JavaScript在客户端进行验证。因此,在大多数情况下,我的视图模型将是有效的,并且验证逻辑将保留在一个地方,并且只在领域模型中发生。这种方法的缺点是asp.net mvc 2验证将无法支持它。
你认为呢?
谢谢。