我寫使用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的有效性嗎?