朋友们好!
我有 2 个模型类说Page和PageHistory。两者都包含相同的属性。在这里,每当我编辑Page对象时,我都需要使用相同的属性值更新PageHistory对象。
我试过这样的事情:
[HttpPost]
[ValidateInput(false)]
public ActionResult Edit(Page page, FormCollection frm)
{
try
{
if (ModelState.IsValid)
{
page.IsPublished = !string.IsNullOrEmpty(frm["BtnPublish"]);
_db.Entry(page).State = EntityState.Modified;
_db.SaveChanges();
//Add updated page in hitory, if something is modified
PageHistory ph=new PageHistory();
ph.ID=page.ID
// likewise all attributes.....
// after all values are assigned, save a History object
ph.SaveChanges();
return RedirectToAction("Subpages", new { id = page.ParentId });
}
}
catch (DataException)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator (http://support.mysite.com).");
}
return View(page);
}
它正在工作,但这并没有那么优化,是否有任何替代方法可用于复制对象?还有一个问题是,是否可以从 Page 类继承 PageHistory类,因为两者都包含相同的属性?哪一个是最好的方法?