我有一個網站,我使用fluentNhibernate和Asp.net MVC。我有一個編輯視圖,允許用戶編輯該記錄(對象)的10個屬性中的8個。當您提交表單並且模型綁定時,這兩個不可編輯的字段將作爲空字符串返回到視圖模型中,或作爲默認日期時間值返回,具體取決於屬性的類型。當你的視圖模型沒有像你的域模型那麼多的字段時,你如何忽略/保持MVC中的值?
因爲我也使用AutoMapper將我的視圖模型映射到我的域實體,所以我不能只從數據庫加載我的對象的新副本,並手動設置2缺少的屬性。堅持那些我不想編輯的領域最好的辦法是什麼?
確實有效的一種方法是將我的視圖中隱藏的輸入字段中的值保留下來。這有效,但感覺很糟糕。我很欣賞任何建議。我的AutoMapper中有一種方法來配置這個所需的功能嗎?
UPDATE: 好了,我想我不是要忽視領域,我想確保我不堅持null或空字符串值。忽略AutoMapper中的字段就是這樣做的,它們會被忽略,當我嘗試將它們映射到保存到我的存儲庫之前時,它們會爲空。
爲什麼不可編輯的字段甚至是視圖模型的一部分是否有原因? – mxmissile 2009-09-04 15:52:02
目前他們不是視圖模型的一部分,這似乎是問題的一部分。這些字段是'AddedBy'和'DateAdded'。一旦創建了這個對象,就不應該改變它們。我試圖連接編輯視圖而不會丟失數據。當我從我的視圖模型映射到我的模型時,使用Automapper將null數據取出 – shanabus 2009-09-08 18:00:11