• Fluentvalidation的基本使用


    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 而终止。

                 

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

    写bug,改bug,理解bug!
     
    分类: .net core tools
     
     
     
    « 上一篇: .net core中serilog的基本使用
    » 下一篇: EF Core中的DB First与Code First
    posted @ 2019-07-31 11:20  netLearner7  
  • 相关阅读:
    多线程
    JavaSE
    SpringBoot是什么,可以做什么?
    SSM框架中如何简便上传文件表单
    SQL语句全解,非常棒!
    关于HttpSession 和 Hibernate框架中 session异同点的简单解析
    关于Javascript中页面动态钟表的简单实现
    Java 面向对象 知识点基础浅谈
    Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...
    关于Java中面向对象章节、IO 流中的重点基础知识。
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/14261760.html
Copyright © 2020-2023  润新知