我一直在寻找一种正确的方法来标记在 MVC 中更新模型时不更改的属性。
例如,我们以这个小模型为例:
class Model
{
[Key]
public Guid Id {get; set;}
public Guid Token {get; set;}
//... lots of properties here ...
}
那么 MVC 创建的编辑方法如下所示:
[HttpPost]
public ActionResult Edit(Model model)
{
if (ModelState.IsValid)
{
db.Entry(model).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
现在,如果我的视图不包含令牌,它将通过该编辑而失效。
我正在寻找这样的东西:
db.Entry(model).State = EntityState.Modified;
db.Entry(model).Property(x => x.Token).State = PropertyState.Unmodified;
db.SaveChanges();
到目前为止,我发现的最好方法是包容性并手动设置我想要包含的所有属性,但我实际上只想说要排除哪些属性。
我们可以这样使用
db.Entry(model).State = EntityState.Modified;
db.Entry(model).Property(x => x.Token).IsModified = false;
db.SaveChanges();
它将更新但没有 Token 属性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)