如何防止立即触发jQuery验证?

时间:2017-04-14 15:38:26

标签: asp.net-core unobtrusive-validation

有一些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页面时立即触发验证。因此,当她没有输入任何内容时,会看到电子邮件字段的错误(需要字段电子邮件)。如何防止此行为(在提交时触发)?

1 个答案:

答案 0 :(得分:0)

有行动:

public IActionResult SomeAction(MyViewModel model = null)
{
   return View(model);
}

即。 controller传递给action null模型(默认值)。这是jquery验证行为的原因