如何避免 View 出现 ModeState invalid 属性 错误
How to avoid ModeState invalid property error from appearing in the View
我在视图中有一个隐藏字段:
<input asp-for="CreatedOnUtc" type="hidden"/>
现在,当模型状态无效时,会显示以下消息:
我想做的是消除错误,它之所以存在是因为这是一个由 Edit
和 Create
共享的局部视图,它的目标是保持仅当它位于 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
}
我在视图中有一个隐藏字段:
<input asp-for="CreatedOnUtc" type="hidden"/>
现在,当模型状态无效时,会显示以下消息:
我想做的是消除错误,它之所以存在是因为这是一个由 Edit
和 Create
共享的局部视图,它的目标是保持仅当它位于 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
}