我正在使用ViewModels與asp.net MVC3。我很好奇的一件事是,假設我有一個名爲Customers的實體,並且它具有添加,編輯,刪除屏幕。假設它們都有不同的屬性要求。什麼方法可以選擇ViewModels?
例如,添加可能有地址欄,但編輯屏幕可能沒有編輯屏幕,刪除可能只會使用客戶名稱。
我的問題是,你如何爲此創建ViewModels?您是否在添加,編輯和刪除之間使用共享ViewModel的方法,即爲您處理所有內容的單個視圖模型類,或者您更喜歡創建視圖模型類/頁面?
與共享視圖模型的優點是它減少了開發時間,我們可以重用類。但是與此有關的一個大問題是,如果您使用的工具如Automapper,您可能會期望針對不同屏幕的結果。
一個viewmodel/page的缺點是它增加了開發時間。我應該走哪條路?
不Automapper只是忽略那些從特定ViewModel缺少或清空的字段? –
如果我的viewmodel具有這些字段而且它們爲空,該怎麼辦?然後,它會將空值分配給我的實體,並且我的數據庫將被填充具有空值的列。 – Jaggu
@Jaggu:爲什麼值爲空?他們是不是由數據庫填充,而不是視圖?您將哪兩個類映射在一起,哪些值可能爲空(在每種情況下)? –