我想知道如何用新值更新現有對象。我有以下特性用新值更新現有對象
public class Account
{
public int Id {get; set;}
public string Forename {get; set;}
public string Surname {get; set;}
public DateTime RegisterDate {get; set;}
public string Occupation {get; set;}
}
在項目中,我有一個簡單的編輯方法,它允許用戶更新他們的用的名字,姓氏和職業簡單的帳戶對象。
public ActionResult Edit()
{
return View();
}
[HttpPost]
public ActionResult Edit(Account editFormDetails)
{
var accountDetails = GetAccountDetails(account.Id) //Gets a users existing details from db
return RedirectToAction("Index");
}
是否有更好的方式來更新現有的對象(accountDetails)與editFromDetails對象的新值?我會做克隆,但是,我的編輯窗體中的字段可以留空,所以我可能不需要更新。我在這個例子中簡化了我的對象,以減少冗長。任何幫助都會很棒。
嘗試ValueInjecter:https://valueinjecter.codeplex.com/ – 2014-09-22 20:13:59
有幾個庫已經爲您解決了這個問題。 ValueInjector,AutoMapper等等。不過,我認爲你會發現編輯表單發佈一個null的值,他們不想編輯會導致一些問題。 – 2014-09-22 20:15:28