我写使用NHibernate和库模式的ASP.NET MVC 2应用程序。我有一个包含我的模型(业务实体)的程序集,而且在我的Web项目中,我想使用扁平化对象(可能具有其他属性/逻辑)作为ViewModels。 这些VM包含UI特定的元数据(例如,由Html.LabelFor()方法使用的DisplayAttribute)。来验证模型在ASP.NET MVC 2视图模型有道apporach
的问题是,我不知道如何实现验证,这样,我不重复自己遍及各个层(特别是验证规则在模型编写一次,并传播到视图模型)。
我使用我的ViewModel DataAnnotations但这意味着没有验证规则是在模型本身罚款。我正在考虑的一种方法是从业务实体派生ViewModel对象,添加新属性/覆盖旧属性,从而保留两者之间的验证元数据,但这是一种丑陋的解决方法。
我见过Automapper项目,这有助于映射属性,但我不知道它是否能够妥善处理ASP.NET MVC 2验证的元数据。在asp.net mvc 2中使用自定义验证框架很困难吗?
你有什么模式可以帮助保持DRY的有效性吗?