我正在尝试使用联系表单(MVC),如果验证失败,将重新加载View。这样可行。但是,如果您返回页面并更正错误,则提交时ModelState仍为false,因此只是重新加载页面。
我在返回之前尝试了ModelState.Clear
,但这样可以清除错误。我需要一种方法来显示错误,然后清除模型,但是当然我不能在返回后使用该方法。
我的代码如下:
public ActionResult Index(ContactFormViewModel model, string inputFirstName, string inputLastName, string inputEmail, string inputMessage)
{
if (ModelState.IsValid)
{
return View("Success");
}
//reload page and show validation errors
else
{
return View(model);
}
}
例如,在我的模型中,我在Message字段上有一个带有错误消息的正则表达式。如果我第一次输入不允许的内容,ModelState为false并返回View(正确)。但是,回到表单并更正问题,ModelState现在应该是true但它仍然是false
。
如果我这样做
else
{
ModelState.Clear()
return View(model);
}
然后页面重新加载,没有错误消息。这不太理想。
如何获取它以便显示错误消息,然后清除modelState。
我尝试ContactFormViewModel cmModel = new ContactFormViewModel()
,但结果相同。
答案 0 :(得分:0)
尝试这样的事情:
return View(new ContactFormViewModel());
创建一个新对象并将其传递给视图。
答案 1 :(得分:0)
调试后,我发现ModelState.IsValid正确显示为无效,因为实际上,我在inputMessage中输入的字符串不满足正则表达式。 答案完全与模型无关。