手机版

ASP .核心网络应用编程接口中使用FluentValidation验证数据模型的方法

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

介绍

验证用户输入是一个网应用中的基本功能。对于生产系统,开发人员通常需要花费大量时间,编写大量的代码来完成这一功能。如果我们使用FluentValidation构建ASP .核心网络应用编程接口,输入验证的任务将比以前容易的多。

FluentValidation是一个非常流行的构建强类型验证规则的。网库。

配置项目

第一步:下载FluentValidation

我们可以使用框架下载最新的FluentValidation库

预防性维护安装-软件包验证AspNetCore .第二步:添加FluentValidation服务

我们需要在Startup.cs文件中添加FluentValidation服务

public void ConfigureServices(IServiceCollection services){//MVC验证服务AddMvc().SetCompatibilityVersion(兼容性版本版本_2_1).AddFluentValidation();}添加校验器

FluentValidation提供了多种内置的校验器。在下面的例子中,我们可以看到其中的2种

不为空校验器题字校验器第一步:添加一个需要验证的数据模型

下面我们添加一个用户类。

公共类用户{公共字符串性别{ get设置;}公共字符串名字{ get设置;}公共字符串姓氏{ get设置;}公共字符串SIN { get设置;}}第二步:添加校验器类

使用FluentValidation创建校验器类,校验器类都需要继承自一个抽象类抽象验证器

公共类用户验证器:抽象验证器用户{公共用户验证器(){//在这里添加规则}}第三步:添加验证规则

在这个例子中,我们需要验证名,姓,辛不能为null,不能为空。我们也需要验证工卡社会保险号编号是合法的

公共静态类实用程序{ public static bool is valid in(int sin){ if(sin 0 | | sin 9999998)返回假声校验和=0;for(int I=4;我!=0;I-){ 0校验和=sin % 10s in/=10;int addend=2 *(sin % 10);如果(加数=10)加数-=9;校验和=加数;sin/=10;}返回(校验和sin)% 10==0;}}下面我们在用户验证器类的构造函数中,添加验证规则

公共类用户验证器:抽象验证用户{ public UserValidator(){ RuleFor(x=x .名字)).NotEmpty().WithMessage('名字是必需的');规则为(x=x.LastName).NotEmpty().WithMessage('姓氏为必填项');规则为(x=x.SIN).NotEmpty().带消息(' SIN是强制的') .必须((o,列表,上下文)={ if (null!=o . SIN){ 0上下文消息格式化程序。附加参数(' SIN ',o . SIN);返回实用程序isvalidasin(int .解析(o . SIN));}返回true})。带消息(“{ SIN }”)无效);} }第四步:注入验证服务

public void ConfigureServices(IServiceCollection services){//添加验证器服务AddSingletonIValidatorUser,user validator();//mvc验证服务AddMvc().SetCompatibilityVersion(兼容性版本版本_2_1).AddFluentValidation();}第五步:在Startup.cs中管理你的验证错误

ASP .网络核心2.1及以上版本中,你可以覆盖模型状态管理的默认行为(行为选项)

public void ConfigureServices(IServiceCollection services){//Validators服务AddSingletonIValidatorUser,user validator();//mvc验证服务AddMvc().SetCompatibilityVersion(兼容性版本版本_2_1).AddFluentValidation();//覆盖模型状态服务配置行为选项(选项={选项.invaliddmodelstattresponsefactory=(context)={ var errors=context .ModelState .价值观。选择许多(x=x .错误。选择(p=p.ErrorMessage)).to list();定义变量结果=新{代码='00009 ',消息='验证错误,错误=错误};返回新的BadRequestObjectResult(结果);};});}当数据模型验证失败时,程序会执行这段代码。

在这个例子,我设置了如何向客户端显示错误。这里返回结果中,我只是包含了一个错误代码,错误消息以及错误对象列表。

下面让我们看一下最终效果。

使用验证器

这里验证器使用起来非常容易。

你只需要创建一个行动,并将需要验证的数据模型放到行为的参数中。

由于验证服务已在配置中添加,因此当请求这个行为时,FluentValidation将自动验证你的数据模型!

第一步:创建一个使用待验证数据模型的行为

[路由(' API/[控制器]')][API控制器]公共类去示范控制器:控制器基础{[httpset]public IActionResult Post(用户用户){不返回内容();}}第二步:使用邮递员测试你的行为

总结

在本篇博客中,我讲解了如何使用FluentValidation进行数据模型验证。

本篇源代码https://github.com/lamondlu/FluentValidationExample

原文链接:ASP。网核心2.1网络应用程序:验证中的常见功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:ASP .核心网络应用编程接口中使用FluentValidation验证数据模型的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。