我是使用MVC 5和.NET framework 4.5的新手,我遇到了一个问题。我有一个表单,我想在错误输出时重置表单的字段,但保留错误并显示给用户。目前我可以清除错误字段,但这也消除了错误。我试过了
originalModel.field= "";
但这并没有明确这个领域。我也尝试过使用
ModelState.Clear();
但这也没有做任何事情。
这是我目前正在使用的(清除所有内容):
if (!ModelState.IsValid)
{
TestModel blank= new TestModel();
ModelState.Clear();
return View("View.cshtml", blank);
}
答案 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
字段的验证错误消息。