iT邦幫忙

0

ASP.NET MVC ViewModel 1對多適合嗎?

請問各位大大:
  當我們建立ViewModel來對應網頁時,一個ViewModel對應多網頁的設計適合嗎?
例如一個ViewModel有10個參數,分別有3個網頁參考了此ViewModel,每個網頁參考的變數類似,但都略有不同~
所以假設A網頁參考了10個參數
B網頁參考了6個參數
C網頁參考了4個參數
還是說比較好的設計還是一個ViewModel對應一個網頁最好呢?
如果說是1對1是理想的設計,那如果有100個頁面就要有100個ViewModel來對應
(雖然知道ViewModel是提供頁面使用的Model,但是只知其然不知其所以然,所以產生了以上的疑問)

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
YoChen
iT邦研究生 1 級 ‧ 2019-12-18 14:39:19
最佳解答

以MVC的架構來說,基本上就是一個ViewModel對應一個View
其實您可以從建置MVC專案時,預設的ViewModel中就能夠看出來,官方也是選用這樣的模式~

而這其中的一個重點,
一對一的做法可以讓DataAnnotations更有效的發揮作用,
讓您可以省去許多前、後端驗證、顯示等等的問題~

雖然就像您說的,
100個View就會有100個ViewModel
看起來好像很複雜,
但只要您有好好的管理您的專案就會發現,
100個ViewModel可能是被分別寫在10個不同的cs檔案當中,
而他們可能對應的是10個Controller10個不同的Action
View也會因為Controller的不同而將檔案分別放在10個以Controller命名的資料夾底下,
如此一來,其實也就沒有想像中的複雜了~

leo226 iT邦新手 4 級 ‧ 2019-12-18 16:40:18 檢舉

了解,獲益良多,感謝指教~

1
小魚
iT邦大師 1 級 ‧ 2019-12-18 10:39:12

沒有不適合,
只要能用都可以,
至於最後一個問題等到你做到一百個頁面的時候再說吧,
我之前在公司做兩年的案子也做不到那麼多頁面.
不過幾十個總是有的.
(雖然我做的那個是單機的)

leo226 iT邦新手 4 級 ‧ 2019-12-18 16:40:47 檢舉

了解,感謝指教~

我要發表回答

立即登入回答