0

ASP.NET Core 有很好的处理验证的方式。但是前端显示的验证风格非常老派。我遵循的方式:

带有错误消息的自定义模型注释:

    [Required(ErrorMessage = "UserName is Required")]
    [StringLength(10, ErrorMessage = "Must be between 5 and 10 characters", MinimumLength = 5)]
    [UserNameVal]
    public string UserName { get; set; }

添加脚本以在视图中显示消息

@section Scripts {
<partial name="_ValidationScriptsPartial" />
}

显示带跨度的错误消息:

<span asp-validation-for="@Model.UserName" class="text-danger"></span>

这导致了一个原始的旧 faishon 验证消息,如下面的屏幕截图

在此处输入图像描述

但我想要使用默认的 asp-for-validation 这样的验证样式

在此处输入图像描述

是否可以不在每个页面中编写额外的 javascript?如果可能的话怎么办?我已经探索了这些链接: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-3.1 http://jsfiddle.net/2DUX2/ https:// www.codeproject.com/Tips/755421/Using-the-jQuery-unobtrusive-validator-with-Twitte

4

1 回答 1

1

自定义验证的最简单方法是使用第三方验证库。因为内置功能是为一般用途而创建的,它为大多数人服务。可以使用 CSS 自定义默认样式。当您想要自定义外观和感觉时,您无法通过魔术获得它。要么您必须编写自己的 CSS 样式,要么您必须使用为您完成的另一个第三方库。

如果您检查默认错误消息的源代码视图,您会看到其中的 HTML 部分非常简单,并且在该标签上您可以轻松地放置自定义 CSS 和 JavaScript 来自定义它,而无需触及 C# 或剃刀中的任何内容。

但有时它很耗时,没有人愿意自己写。所以他们使用第三方库来完成这项工作。例如,您可以查看此链接:https ://validatejs.org/

于 2020-08-03T04:21:41.640 回答