当前位置: 首页 > news >正文

即墨做网站的天津做网站优化价格

即墨做网站的,天津做网站优化价格,公司网站服务费计入什么科目,我的网站搜索不到了FluentValidation 是一个用于 .NET 的开源验证库#xff0c;它提供了一种流畅的接口和强类型验证规则#xff0c;使得验证逻辑表达得更加清晰和简洁。#xff08;Apache-2.0#xff09; FluentValidation 的主要作用包括#xff1a; 提高代码可读性#xff1a;通过使用 F… FluentValidation 是一个用于 .NET 的开源验证库它提供了一种流畅的接口和强类型验证规则使得验证逻辑表达得更加清晰和简洁。Apache-2.0 FluentValidation 的主要作用包括 提高代码可读性通过使用 Fluent 接口和 lambda 表达式FluentValidation 能够让验证逻辑更容易被阅读和理解。简化验证逻辑编写它允许开发者以声明式的方式构建复杂的验证规则这样可以减少编写重复性验证代码的工作量。易于维护由于验证规则是强类型的这使得维护和重构变得更加容易因为编译器可以帮助检查类型安全。支持 .NET 8FluentValidation 更新迅速与 .NET 8 保持同步确保了在新平台上的可用性。自定义错误消息FluentValidation 允许开发者为每个验证规则定义自定义的错误消息这样可以提供更具体的错误反馈给最终用户。扩展性强如果默认提供的验证规则不满足需求开发者可以创建自定义的验证器来应对特定的业务逻辑。集成灵活FluentValidation 可以轻松地集成到现有的 .NET Core Web API 或 MVC 项目中与模型绑定和数据注解无缝协作。 总的来说FluentValidation 是一个功能强大且易于使用的验证库它能够帮助 .NET 开发者构建健壮的应用程序同时保持良好的代码质量和可维护性。 前边我们做了系统登录注册的简单接口对于参数的处理都是通过代码去编写的如下 //验证 if (string.IsNullOrWhiteSpace(para.UserName) || string.IsNullOrWhiteSpace(para.PassWord)) {return ApiResultHelper.Error(请输入账号或密码); } 如果其他地方也需要类似的判断处理则需要对代码进行复制复制的地方多了后续维护的成本也会加大  所以我们希望能有一个统一的处理方式来规划这些值 于是便有了对FluentValidation验证体系的使用了。 五一结束了也祝各位工作顺利升职加薪 进入正题 1、安装nuget包FluentValidation  2、 配置验证规则。 我这里是把验证模式放在Model层创建Validation文件夹处理的也可以放在入参那边的模型下边。 例子 /// summary /// 用户登录 入参 校验 /// /summary public class LoginUserValidator : AbstractValidatorLoginUserParameters {public LoginUserValidator(){RuleFor(para para.UserName).NotEmpty().WithMessage(【用户名】不能为空);RuleFor(para para.PassWord).NotEmpty().WithMessage(【密码】不能为空);} }/// summary /// 用户注册 入参 校验 /// /summary public class RegisterUserValidator : AbstractValidatorRegisterUserParameters {public RegisterUserValidator(){//1.不为空string notEmpty 不能为空;RuleFor(para para.UserName).NotEmpty().WithMessage(【用户名】 notEmpty);RuleFor(para para.PassWord).NotEmpty().WithMessage(【密码】 notEmpty);RuleFor(para para.Email).NotEmpty().WithMessage(【邮箱】 notEmpty);RuleFor(para para.AuthCode).NotEmpty().WithMessage(【验证码】 notEmpty);//2.数据库存储长度限制//ps:可用sugar特性或查询数据库配置统一处理吧string notLength 长度有误;RuleFor(para para.UserName).Length(1, 25).WithMessage(【用户名】 notLength);RuleFor(para para.PassWord).Length(6, 18).WithMessage(【密码】 notLength);RuleFor(para para.Email).Length(6, 30).WithMessage(【邮箱】 notLength);//不建议限制RuleFor(user user.AuthCode).Length(6, 8).WithMessage(【验证码】 notLength);//3.格式正则string notMatches 格式不正确;RuleFor(user user.Email).Matches(^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$).WithMessage(【邮箱】 notMatches);//可与上边拼接一起}} 这里一个是简单方式的一个是验证方式较多的。 如有其他需要可自行百度或搜索其他方式方法。 3、注入服务 builder.Services.AddTransientIValidatorLoginUserParameters, LoginUserValidator(); builder.Services.AddTransientIValidatorRegisterUserParameters, RegisterUserValidator(); 4、使用。 4.1、控制器层注入 private readonly ILoggerUsersController _logger;private readonly IUsersService _usersService;//参数验证private readonly IValidatorLoginUserParameters _loginUserParametersValidator;private readonly IValidatorRegisterUserParameters _registerUserParametersValidator;/// summary/// 构造函数/// /summary/// param namelogger/parampublic UsersController(ILoggerUsersController logger, IUsersService usersService,IValidatorLoginUserParameters loginUserParametersValidator,IValidatorRegisterUserParameters registerUserParametersValidator){_logger logger;_usersService usersService;_loginUserParametersValidator loginUserParametersValidator;_registerUserParametersValidator registerUserParametersValidator;} 4.2、方法Action中使用 var validationResult _loginUserParametersValidator.Validate(para);if (!validationResult.IsValid){//return BadRequest(validationResult.Errors);var errs validationResult.Errors;var errsStr string.Empty;var index 1;validationResult.Errors.ForEach(t {errsStr errsStr index.ToString() 、 t.ToString() ;index ;});return ApiResultHelper.Error(【参数验证失败】 errsStr);} 5、测试 5.1、如图。无账号 这里把所有有误的都加上来了 然后我们通过信息查看其实为空的是否必然长度是不对的也就没必要体现出来 所以在注入后再添加代码 //1设置模型类的CascadeMode当模型的第一个验证失败后续验证不执行。 ValidatorOptions.Global.DefaultClassLevelCascadeMode CascadeMode.Stop; //2设置模型字段的CascadeMode当字段的第一个验证失败后续验证不执行。 ValidatorOptions.Global.DefaultRuleLevelCascadeMode CascadeMode.Stop; 这就很符合我们自己写逻辑的规则方式了。         继续测试的效果也就是第一个错误提示了。 最后在验证那一串循环代码可以在封装一下不然也是每次写这么多重复代码。 6、其他 6.1、在查询该功能实现及其他处理可参考文章 fluentvalidation - 简书 https://www.cnblogs.com/wenthing/p/18006465  6.2、拓展自定义一个处理方式。
http://www.hkea.cn/news/14279061/

相关文章:

  • 医院客户做网站找谁国外的网站需要备案吗
  • 悟空建站seo服务网站建设专家是干嘛的
  • 什么网站能代做预算网站维护企业
  • 东莞人才网站网站建设的实验原理和方法
  • 企业网站怎么做百度太原市城乡建设局网站
  • 佟年为韩商言做的网站搜狗推广开户
  • 一台服务器怎么做多给网站app开发价格表模板
  • 浙江专业做网站有关网页设计与网站建设的文章
  • 网站出租建设php 网站模板
  • 银川网站开发培训怎么制作糖葫芦教程
  • 做视频网站需要什么服务器南昌公司做网站
  • 做简单网站需要学什么软件有哪些内容网页版传奇推荐
  • 买个域名后怎么做网站我是做网站的 哪里有单接
  • 恒辉建设集团网站网站前瞻性_新流量机会内容建设分析
  • 广西贺州建设局网站哪里有免费的h5模板
  • 建筑模拟3正版下载河北百度seo软件
  • wordpress网站添加背景音乐橙色网站模板
  • 一流的医疗网站建设站长之家模板
  • 中国最好网站建设公司广州微信网站建设费用
  • 网站建设标准一辽宁seo
  • 网站建设合同封面模板下载蓝色大气企业网站
  • 泉山微网站开发wordpress 基础主题
  • 济南网站建设网站常州市建设工程管理中心网站
  • 网站开发能作为无形资产吗推动高质量发展心得体会
  • 桐城住房和城乡建设局网站3秒钟自动跳转网页
  • 上海住房和城乡建设部网站首页免费空间贴吧
  • 网站建设讨论会直接做的视频网站
  • 淘宝做网站的店微信制作小程序的软件
  • 网站开发网上宠物店管理系统福建设计网站
  • 网站建设的介绍信息流推广