有一些ViewModel:
class MyViewModel
{
[Required(ErrorMessage = "Field {0} is required")]
public string Email { get; set; }
}
我在前端使用jquery验证:
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.16.0/jquery.validate.min.js">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validation.unobtrusive/3.2.6/jquery.validate.unobtrusive.min.js">
</script>
Razor标记的片段:
<form asp-controller="Account" asp-action="Register" role="form">
<div class="form-group">
<div asp-validation-summary="All" class="text-danger"></div>
</div>
<div class="form-group">
<label asp-for="Email"></label>
<input asp-for="Email" class="form-control" aria-describedby="email" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</form>
问题是当用户获取html页面时立即触发验证。因此,当她没有输入任何内容时,会看到电子邮件字段的错误(需要字段电子邮件)。如何防止此行为(在提交时触发)?
答案 0 :(得分:0)
有行动:
public IActionResult SomeAction(MyViewModel model = null)
{
return View(model);
}
即。 controller传递给action null模型(默认值)。这是jquery验证行为的原因