我想知道如何用新值更新现有对象。我有以下特性用新值更新现有对象
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