無法在控制器的[HttpPost]更新操作方法中使用AutoMapper。在ASP.NET MVC中更新從ViewModel到模型的實體跟蹤字段的跟蹤
我有實體跟蹤字段,如CreatedDate,CreatedBy,ModifiedDate,ModifiedBy和我沒有他們作爲我的ViewModel中的字段。
當用戶帖子的形式在更新的操作方法我通常會做這樣的事情:
var product = Mapper.Map<Product>(productViewModel);
此時跟蹤場爲空。我永遠無法得到它們。
它看起來像我有兩個選擇:
添加跟蹤場向視圖模型,並在HTML作爲使它們回傳到服務器隱藏字段就像「ID」。
不是創建新的產品對象,而是基於viewModel.Id從數據庫中檢索產品,然後用viewModel新值手動覆蓋用戶可能已在窗體中編輯的所有值。
有沒有人有任何額外的想法或建議呢?第1步是額外的數據到頁面,我不需要和第2步是一個額外的數據庫調用和不含AutoMapper的不乾淨的代碼。
選項1我會在這種情況下使用。無論如何,你將模型綁定到頁面上,更多的字段不會受到傷害。比另一次訪問數據庫更好!但你是對的,我認爲這是你唯一的選擇。 – garethb