• Fluentvalidation的基本使用


    前言:

    fluentvalidation用于构建强类型验证规则的流行.NET库。方便好用快捷省心!!!

    本文按照官方文档进行试验,如果深(不)入(看)的(我)研(写)究(的)请去官网:https://fluentvalidation.net/

    相关包:

    核心:FluentValidation

    .net core:FluentValidation.AspNetCore

    .net::FluentValidation.Mvc5/FluentValidation.WebApi

    本文使用.net core所以只安装FluentValidation.AspNetCore即可

    模型与验证器:

    准备一个需要的模型:

        public class Customer

        {

            public int Id { get; set; }

            public string Surname { get; set; }

            public string Forename { get; set; }

            public decimal Discount { get; set; }

            public string Address { get; set; }

    创建验证器,对验证类进行验证

        public class CustomerValidation:AbstractValidator<Customer>

        {

            public CustomerValidation()

            {

                RuleFor(customer => customer.Surname)

                  //不为空

                    .NotNull()

                   //最小/最大长度

                    .MinimumLength(2)

                    .MaximumLength(10)

                   //错误提示信息

                    .WithMessage("姓名长度不符!");

            }

    }

    要点:

    1. 必须继承于AbstractValidator
    2. AbstractValidator<需要验证的类>
    3. 在构造函数中添加验证
    4. RuleFor是对某一个属性添加验证规则

    配置

    先上图:

     

    1. AddFluentValidation必须在AddMvc之后
    2. 方法里面可以进行想要的配置,比如关掉自带的验证器
    3. 如果验证器较多的话建议使用这种程序集注入的方式

    当然还有另外一种注入方式只是比较麻烦,看图: 

    这样也是可以的,不过比较麻烦。。。

    使用

    开头说了,这东西方便好用快捷省心,所以根本不需要在控制器中进行额外的使用,一切从简!

    结果:     

    验证器中对Surname属性进行了不为空&长度大于2&长度小于10的限制,那么来看结果:

     

    当我们点击提交:

     

    看来是成功了!界面很丑,请不要吐槽。。。

    自定义验证过程:

    请注意:在 PreValidate 方法内可以自定义验证过程,如果验证不通过请添加一个错误,管道不会因为返回的是 false 而终止。

                 

    以上如果有错误请各位斧正,谢谢你的阅读~

  • 相关阅读:
    addddd
    editor
    ui
    java.lang.NoClassDefFoundError: org/apache/poi/poifs/filesystem/FileMagic
    tomcat配置本地域名
    Spring Boot+MyBatis项目搭建
    约瑟夫环问题(100围坐一圈报数,报3出圈)
    java二分查找法
    bootstrap-table数据导出及Checkbox相关设置
    java按给定字节数截取含有中英文的字符串
  • 原文地址:https://www.cnblogs.com/zyz-Notes/p/11275113.html
Copyright © 2020-2023  润新知