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

时间:2016-08-12 15:00:24

标签: c# asp.net asp.net-mvc

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

originalModel.field= "";

但这并没有明确这个领域。我也尝试过使用

ModelState.Clear();

但这也没有做任何事情。

这是我目前正在使用的(清除所有内容):

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

1 个答案:

答案 0 :(得分:1)

如果您确实需要此行为,则可以在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
}

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