清除表单时保存错误(MVC)

本文关键字:MVC 错误 保存 表单 清除 | 更新日期: 2023-09-27 18:02:21

我是使用MVC 5和。net框架4.5的新手,我遇到了一个问题。我有一个表单,我想在表单出错时重置表单的字段,但保留错误并显示给用户。目前我可以清除字段的错误,但这也摆脱了错误。我试过了

originalModel.field= "";

但这不会清除字段。我也试过只用

ModelState.Clear();

但是这个也没有做任何事情。

这是我目前正在处理的(它清除了所有内容):

if (!ModelState.IsValid)
{
    TestModel blank= new TestModel();
    ModelState.Clear();
    return View("View.cshtml", blank);
}

清除表单时保存错误(MVC)

如果您绝对需要这种行为,您可以将视图模型的此属性的值设置为Modelstate字典中的空字符串。

[HttpPost]
public virtual ActionResult Index(CreatePostVm model)
{
  if (ModelState.IsValid == false)
  {
     ModelState["PostTitle"].Value =
          new ValueProviderResult(string.Empty, string.Empty,CultureInfo.InvariantCulture);
     return View(model);
  }
  // to do : Return something
}

上面的代码将CreatePostVm视图模型的PostTitle属性设置为空文本。因此,在您的视图中,输入字段将是一个空文本,同时仍然显示PostTitle字段的验证错误消息。