ASP.NET MVC 中的必需验证可以通过使用 [Required] 数据注释实现。这种验证通常在表单提交时触发,但有时也会在页面呈现时触发。这可能会导致一些问题,例如在页面初始化时就显示错误消息。
为了解决这个问题,我们可以在控制器中手动触发验证。在操作方法中,我们可以使用 ModelState.IsValid 属性来检查表单数据是否有效,如果无效,则手动添加一个错误消息。然后,我们可以将模型绑定视图时的状态设置为 false,这将防止默认行为触发验证。
下面是一个示例代码:
[HttpPost]
public ActionResult SubmitForm(MyModel model)
{
if (!ModelState.IsValid)
{
ModelState.AddModelError("", "Error message");
}
// Do something with the form data
return View("Result", model);
}
在视图中,我们可以使用以下代码来显示验证错误消息:
@Html.ValidationSummary(true)
这将显示所有错误消息,并将其与相应的字段关联起来。如果有多个错误消息与同一字段关联,则可以设置第二个参数为 false,以加入其他错误消息。
@Html.ValidationMessageFor(m => m.FieldName, "", new { @class = "text-danger" })