asp.net-core-mvc - 完全定制的客户端数据验证
问题描述
我有一个基于服务器的数据验证自定义解决方案。更新数据时,我的代码将首先通过调用数据库 (sp) 进行验证,并返回数据可能无法正确更新或创建的任何原因。我打算用一串错误代码来做到这一点。接下来,我将加载到可以在视图中显示的相关消息的视图包中。自定义消息来自数据库,可由管理员更新。此外,自定义消息以多种语言存储。出于这个原因,我认为最好的方法是将它们放在数据库中。
问题是,我可以通过在 viewbag 中预加载消息并根据这个 viewbag 在客户端上做一些验证来做这样的事情吗?
并非所有数据验证都可以在客户端站点上进行。(例如,检查名称是否唯一)。但是某些数据验证不需要服务器(空文本框)。
当前系统是在 Microsoft SQL db 上使用 ASP.NET Core MVC 开发的
解决方案
您可以通过将以下脚本添加到您的应用程序来实现客户端验证。这被称为不显眼的验证。标签助手和 HTML 助手使用模型属性的验证属性并呈现为data-
属性。Jquery 不显眼的验证解析data-
属性并进行客户端验证。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"></script>
您可以显示错误:
<span asp-validation-for="FirstName" class="text-danger"></span>
此外,您可以检查名称是否唯一或不使用[Remote]
属性。
[Remote(action: "CheckUniqueName", controller: "Home")]
public string Email { get; set; }
推荐阅读
- ssh - 在 Emacs 中以其他用户身份在其他主机上编辑文件
- javascript - Typerror:对象不是函数或其返回值在反应 16.13.1 中不可迭代
- javascript - 需要帮助保存对字段的 fetch 调用的值
- javascript - Cookie 横幅不与 amp 一起出现
- wpf - 工具提示初始延迟在 WPF 中不起作用?
- java - 来自 try 块和 try-with-resources 的异常
- asp.net - 在 .NET Lambda API 中为 Swashbuckle swagger.json 启用 COR
- regex - 使用正则表达式将字符串包含到另一个字符串中
- json - 在巨大的 .ndjson 文件上验证(并报告错误!)的最快方法是什么?
- javascript - 如何从此函数中提取凭证?