2012-11-03 60 views
0

我們有一個使用NHibernate的一個MVC3項目;有一個單獨的模型項目,其中包含存儲庫和服務層使用的所有模型類。該機型利用數據註解像System.ComponentModel.DataAnnotations DisplayAttribute和RequiredAttribute標籤的。模型層的依賴屬性

也有作爲包含在System.Web.Mvc RemoteAttribute等屬性。

當然,這意味着該模型項目現在有一個依賴於特定的前端技術。

假設解決方案可能有其他前端什麼是處理這種依賴關係鏈接的最佳方式?

+1

應用那些「視圖特定」只能在相應的視圖模型屬性,而不是模式本身 – psousa

回答

1

RemoteAttribute沒有在模型中屬於,因爲它指定一個控制器/動作驗證服務器上的性能,和模型不應該有像控制器,動作或路由概念的相關知識。表示層取決於模型,而不是其他方式。

我會創建一個繼承模型,覆蓋了財產(必須是虛擬的),並增加了RemoteAttribute視圖模型。這樣你就可以避免重複和映射,儘管這也是一種選擇。

+0

我們當前視圖模型包含一個屬性,它是模型類型。在那種情況下,需要另一層視圖模型?一個繼承和覆蓋從原始模型進行任何驗證的屬性,如遠程和包含由觀點和新的驗證視圖模型的屬性所需的數據剃鬚刀視圖中使用的另一種視圖模型? –

+1

@JohnSmith是的,這聽起來不錯。 –

1

爲了減少數據庫模型和前端技術之間的依賴關係,你可以驗證QND在控制器中的其他前端的行動,並把數據從視圖模型數據庫實體後,使用特殊的視圖模型。