2010-06-01 29 views
0

我使用的是asp.net mvc 2,我不確定如何構建模型和視圖模型。在nerddinner中,每個只有一個。視圖模型和模型,如何分割它們

我應該只有1每個實體(?)的視圖模型,然後有1個模型爲每個窗體修改視圖?因此,viewmodel包含它所需的所有內容,例如:Pagefoo FooClass ...,FooClass,Foowithbunnies,FooClassStats ...?

/M

回答

1

我查看的方式是(域)模型對象表示您的業務實體。任何業務需求決定去那裏。

查看模型是爲了使視圖儘可能簡單。所以所有的顯示邏輯,數據按摩等等都會去那裏。

是的,有些時候人們會滲入另一個(嘿,你的視圖模型/花生醬在我的領域模型/巧克力!),並沒有問題。

但是你的目標應該是讓它們儘可能分離和整潔。這似乎導致了最可重用且易於維護的代碼。

0

我一般都有一個ViewModel,它將代表一個View。這是爲了保持視圖儘可能愚蠢。 所以,現在,這是一對一的關係。 View - > ViewModel, 但我的ViewModel與我的Model有一對多的關係

extract 查看| ---- | ViewModel ViewModel | ---- | <模型

0

我繼承了一個應用程序,其中一個數據庫表有大約60列。這代表了在應用程序中的多個頁面上構建的持久類型。爲了解決這個問題,我創建了8個不同的視圖模型。

因此......想想ViewModels的方式與您使用SQL View表(如果隱喻有幫助)相同。 ViewModel是一種機制,用於幫助將持久類型的使用限制爲對您的視圖有用的內容。

此外,我強烈建議在使用ViewModels和Persistent Types之間的轉換時使用AutoMapper,它使處理ViewModel感覺更自然。