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

即墨做网站的台州网站制作价格

即墨做网站的,台州网站制作价格,网站 手机 app,网页基础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/14435779/

相关文章:

  • 怎么开个人网站赚钱网站的维护及建设
  • 小区网站建设有什么网站可以接手工加工做
  • 营销网站建设培训企业网站建设 信息安全
  • 北京建设银行网站家具东莞网站建设0769
  • 开发网站建设方案做网站项目主要技术
  • 做渔船的网站广东省石油化工建设集团公司网站
  • wordpress子目录网站服务器与虚拟主机
  • 建设银行网站会员网上代做论文的网站好
  • 郑州seo网站有优化网站设计制作要多少钱
  • 信息服务类网站怎么做旅游网页设计图
  • php网站后台制作教程网站建设情况通报
  • 国外网站的设计风格东莞网站建设营销网站
  • 官方网站开发哪家好ftp如何上传网站
  • 利辛做网站马关县网站建设
  • 网站流量分析怎么做在线代理app
  • 网站开发课程意见和建议免费浏览的网站
  • wordpress+标题简码深圳网站优化最好的方法
  • 百度网站认证官网嘉兰图设计有限公司
  • 网站建设哪里实惠wordpress wowslider
  • 全网推广网站网站开发与维护视频教程
  • 做3d动画视频接私活的网站买一个域名多少钱
  • 太原网站制作公司哪家好医院门户网站建设
  • 好网站欣赏曲靖网站制作公司
  • 做哪些网站比较好的网站空间数据
  • 投资网站哪个好怎么增加网站的外链
  • 网页设计注册页面代码seo关键词优化排名软件
  • 凌河建设网站crm微信管理系统
  • 旅行社手机网站建设免费建站网站号
  • 天津营销网站建设公司哪家好互联网博客网站
  • 用ps切片做网站能不能完成美篇制作app下载安装免费