【问题标题】:Fully customized client side data validation完全定制的客户端数据验证
【发布时间】:2020-09-17 15:55:15
【问题描述】:

我有一个基于服务器的数据验证自定义解决方案。 更新数据时,我的代码将首先通过调用数据库 (sp) 进行验证,并返回数据可能无法正确更新或创建的任何原因。我打算用一串错误代码来做到这一点。 接下来,我将加载到可以在视图中显示的相关消息的视图包中。自定义消息来自数据库,可由管理员更新。此外,自定义消息以多种语言存储。出于这个原因,我认为最好的方法是将它们放在数据库中。

问题是,我可以通过在viewbag中预加载消息并根据这个viewbag在客户端上做一些验证来做这样的事情吗?

并非所有数据验证都可以在客户端站点上进行。 (例如,检查名称是否唯一)。但是某些数据验证不需要服务器(空文本框)。

当前系统是在Microsoft SQL db上使用ASP.NET Core MVC开发的

【问题讨论】:

    标签: asp.net-core-mvc


    【解决方案1】:

    您可以通过将以下脚本添加到您的应用程序来实现客户端验证。这称为不显眼的验证。标签助手和 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; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      相关资源
      最近更新 更多