如何避免 View 出现 ModeState invalid 属性 错误

How to avoid ModeState invalid property error from appearing in the View

我在视图中有一个隐藏字段:

<input asp-for="CreatedOnUtc" type="hidden"/>

现在,当模型状态无效时,会显示以下消息:

我想做的是消除错误,它之所以存在是因为这是一个由 EditCreate 共享的局部视图,它的目标是保持仅当它位于 Edit 视图中时才会出现该字段,但当它位于 Create 视图中时它会产生这种不幸的副作用。

我可以在模型状态无效时在控制器中添加一个虚拟值,并且视图与之前的模型一起返回,这可行:

if (ModelState.IsValid)
{
    //do stuff
    RedirectToAction(...);
}
model.CreatedOnUtc = DateTime.MinValue;
return View(model);

但我想知道是否有更好的方法来简单地消除模型错误。请注意,我需要真正删除错误,因为视图中设置的模型不能因 属性.

而无效

试试这个

if (ModelState.ContainsKey("CreatedOnUtc")) ModelState["CreatedOnUtc"].Errors.Clear();
if (ModelState.IsValid)
{
  .....your code
}