前言:

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

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

Fluentvalidation的基本使用的更多相关文章

  1. .NET平台开源项目速览(10)FluentValidation验证组件深入使用(二)

    在上一篇文章:.NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一) 中,给大家初步介绍了一下FluentValidation验证组件的使用情况.文章从构建间的验证器开 ...

  2. .NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一)

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下FluentValidation验证组件.那里只是概述了一下,并没有对其使用和强大功能做深入研究 ...

  3. FluentValidation

    git :https://github.com/JeremySkinner/FluentValidation Example using FluentValidation; public class ...

  4. FluentValidation验证

    参考:http://www.c-sharpcorner.com/UploadFile/3d39b4/Asp-Net-mvc-validation-using-fluent-validation/ 创建 ...

  5. ASP.NET MVC中使用FluentValidation验证实体

    1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的 ...

  6. .net使用FluentValidation进行服务端验证。

          背景 最近使用asp.mvc 做一个在线口语系统项目,在服务端验证问题遇到了一些小问题. 自己根据数据库表user定义一个数据库表实体对象UserDbEntity [Table(" ...

  7. 模型验证组件——FluentValidation

    之前在博客园有幸从网友那里得知一个C#的模型验证组件(哈 不知道这样表述正确不),组件的功能比较简单,主要是实现了对Model的验证,例如验证用户名是否为空,密码长度是不是多余6个字符,当然还有其他更 ...

  8. NET MVC中使用FluentValidation

    ASP.NET MVC中使用FluentValidation验证实体   1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion ...

  9. ASP.NET Core WebApi中使用FluentValidation验证数据模型

    原文链接:Common features in ASP.NET Core 2.1 WebApi: Validation 作者:Anthony Giretti 译者:Lamond Lu 介绍 验证用户输 ...

  10. .NET Core中的验证组件FluentValidation的实战分享

    今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NET Core实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码 ...

随机推荐

  1. Centos7 安装使用virtualenvwrapper

    退出所有的虚拟环境,在物理环境下安装 1.下载安装virtualenvwrapper pip3 install virtualenvwrapper 2.查看python3的文件和virtualenvw ...

  2. linux 广播和组播

    广播和组播 广播,必须使用UDP协议,是只能在局域网内使用,指定接收端的IP为*.*.*.255后,发送的信息,局域网内的所有接受端就能够接到信息了. 广播的发送端代码 #include <st ...

  3. Pytorch 使用不同版本的 cuda

    由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验.在运行和学习网络上的 Pytorch 应用代码的过程中,不少项目会标注作者在运行和实验时所使用的 Pytorch 和 c ...

  4. httpHandlers path="*.sky"

    <httpHandlers> <add verb="*" path="*.sky" type="WebAppHttpHandlerT ...

  5. Docker容器数据卷(七)

    Docker致力于: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker co ...

  6. LG5200 「USACO2019JAN」Sleepy Cow Sorting 树状数组

    \(\mathrm{Sleepy Cow Sorting}\) 问题描述 LG5200 题解 树状数组. 设\(c[i]\)代表\([1,i]\)中归位数. 显然最终的目的是将整个序列排序为一个上升序 ...

  7. 手机日期控件mobiscroll

    query Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.以及各种滑动插件可以让用户很方 ...

  8. git npm包管理

    #Node # node 一.安装nodejs 下载地址:http://nodejs.cn/download/ 二.安装git 下载地址:https://git-scm.com/download/wi ...

  9. 调试经验分享-让自己的电脑充当WI-Fi模块,用来抓取连接Wi-Fi模块APP上的通信数据

    需求 手头有了厂家的APP和Wi-Fi模块 在已经知道APP是通过TCP连接Wi-Fi模块(8266), 同时也知道了连接的端口号的 情况下如何知道厂家的APP发送给Wi-Fi模块的数据 打开自己的笔 ...

  10. requests--发送请求

    前戏 使用python做接口自动化,必须用到requests这个库,功能非常的强大,能满足我们大部分的需求. 官网:https://2.python-requests.org//zh_CN/lates ...