我最近在 MVC 4/Entity 项目的现有模型中添加了一些用于审计目的的字段。我不需要在编辑页面上显示这些字段。但是,它们是模型上的必填字段。
就目前而言,编辑页面仍然有效,但在控制器端,ModelState.IsValid 检查失败,因为在项目上实际设置的必填字段没有输出到视图,因此在编辑页面时不会重新提交提交。
是否有一种简单的内置方法来纠正这个问题,或者如果没有,以下哪一项是这种情况的最佳实践?还有更多选择吗?
1)在视图上设置隐藏字段来保存信息(不喜欢这个选项,传递数据太多)
2)在控制器中,在提交时,首先通过 ID 加载模型,然后根据视图上存在的字段设置每个单独的参数(似乎是额外的不必要的工作)
3) 为模型创建一个构造函数,该构造函数将自身作为参数并提取任何非默认值并返回一个新对象。基本上是合并。(我认为最好的,还有很多额外的工作)
4)???