ASP.Net 核心 Razor 页面:<form class= 如何实际调用客户端验证"needs-validation" >?



我正在使用 ASP.Net Core 3.1 Web应用程序。

如果 Razor 页面具有带有class="needs-validation"的表单,则会为该表单中的字段调用客户端验证。 具体来说,当用户单击"提交"时,将调用jquery-validation-unobtrusive

问:这究竟是如何发生的? 什么"魔术"将HTML类"needs-validation"链接到"validate()"Javascript代码? 是否有一些CSS文件可以定义此链接?

问:"需求验证"是引导类吗? 还是标准的HTML5/CSS3? 在哪里/如何定义?

这些是我找到的一些链接,但我仍然不明白调用验证代码的类"需求验证"之间的联系:

  • https://wakeupandcode.com/validation-in-asp-net-core-3-1/
  • https://getbootstrap.com/docs/4.0/components/forms/
  • https://github.com/aspnet/jquery-validation-unobtrusive

默认情况下,asp.net 核心应用程序使用 jQuery 不显眼的验证和 https://jqueryvalidation.org/插件来实现客户端验证。JQuery Unobobsive Validation 解析数据属性并将逻辑传递给 jQuery Validation,从而有效地将服务器端验证逻辑"复制"到客户端。您可以使用标记帮助程序在客户端上显示验证错误,如下所示(不带class="needs-validation"):

<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Movie.Title" class="control-label"></label>
<input asp-for="Movie.Title" class="form-control" />
<span asp-validation-for="Movie.Title" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Movie.Description" class="control-label"></label>
<input asp-for="Movie.Description" class="form-control" />
<span asp-validation-for="Movie.Description" class="text-danger"></span>
</div>
....
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>

class="needs-validation"用于自定义 Bootstrap 表单验证消息(使用 HTML5 表单验证),然后,它将基于此类选择器来查找元素并验证数据。检查引导验证以了解其工作原理以及如何使用它。

最新更新