在“编辑”上还原所选属性的更改

本文关键字:属性 还原 编辑 | 更新日期: 2023-09-27 18:32:23

在"编辑"操作中,是否可以还原对特定属性所做的更改?

考虑代码:

public async Task<ActionResult> Edit(ModelName model)
{
     if (ModelState.IsValid)
     {
         if(certainConditionMathes)
         {
             // revert model.PropertyName to original state
         }
        _dbContext.Entry(model).State = EntityState.Modified;
        await _dbContext.SaveChangesAsync();
        return RedirectToAction("Index");
     }
     return View(evaluation);
}

如您所见[Bind(Include = "...")]不会解决此问题,因为只有在特定条件下,我们才需要取消绑定它。此外,这是一项额外的服务器端安全措施;我不是在查看:if(certainConditionMathes)上渲染该字段。

在“编辑”上还原所选属性的更改

我通过将属性设置为 null 来解决此问题,这产生了与属性未绑定相同的效果。