ModelBinder未设置正确的原始值

时间:2014-09-23 18:52:11

标签: c# asp.net-mvc entity-framework audit-logging modelbinder

注意已解决此问题已被编辑更多信息请查看编辑

在MVC中使用实体模型执行回发时。模型绑定器忽略绑定原始值。因此,如果有人使用保存更改的衍生物来审核日志(无论是覆盖还是绑定到事件),它很可能无法正确记录您的更改以解决此问题,您可以通过使用此功能解决问题克隆当前值,重新加载对象,然后重置当前值。

    void SetCorrectOriginalValues(DbEntityEntry Modified)
    {
        var values = Modified.CurrentValues.Clone();
        Modified.Reload();
        Modified.CurrentValues.SetValues(values);
        Modified.State = EntityState.Modified;
    }

您可以通过更改跟踪器或上下文中的输入功能访问DbEntityEntry。如果有任何改进或我错过的东西让我知道,所以我可以纠正它们。

0 个答案:

没有答案