請問各位大大:
當我們建立ViewModel來對應網頁時,一個ViewModel對應多網頁的設計適合嗎?
例如一個ViewModel有10個參數,分別有3個網頁參考了此ViewModel,每個網頁參考的變數類似,但都略有不同~
所以假設A網頁參考了10個參數
B網頁參考了6個參數
C網頁參考了4個參數
還是說比較好的設計還是一個ViewModel對應一個網頁最好呢?
如果說是1對1是理想的設計,那如果有100個頁面就要有100個ViewModel來對應
(雖然知道ViewModel是提供頁面使用的Model,但是只知其然不知其所以然,所以產生了以上的疑問)
以MVC的架構來說,基本上就是一個ViewModel對應一個View
其實您可以從建置MVC專案時,預設的ViewModel中就能夠看出來,官方也是選用這樣的模式~
而這其中的一個重點,
一對一的做法可以讓DataAnnotations
更有效的發揮作用,
讓您可以省去許多前、後端驗證、顯示
等等的問題~
雖然就像您說的,
100個View就會有100個ViewModel,
看起來好像很複雜,
但只要您有好好的管理您的專案就會發現,
這100個ViewModel
可能是被分別寫在10個不同的cs檔案
當中,
而他們可能對應的是10個Controller
下10個不同的Action
,
View也會因為Controller的不同而將檔案分別放在10個以Controller命名的資料夾
底下,
如此一來,其實也就沒有想像中的複雜了~
沒有不適合,
只要能用都可以,
至於最後一個問題等到你做到一百個頁面的時候再說吧,
我之前在公司做兩年的案子也做不到那麼多頁面.
不過幾十個總是有的.
(雖然我做的那個是單機的)