.netcore3.1——验证组件FluentValidation
2021-03-21 16:27
标签:system 开源 dem 执行 message rom 长度 config rac POST或者GET到服务端的数据是必须进行有效性校验的!数据校验也是重要的业务逻辑,让数据可信! .NET中内置了验证组件(System.ComponentModel.DataAnnotations),可以简单的以特性方式实现,也是最常用的。 FluentValidation是个开源项目,Github(https://github.com/FluentValidation/FluentValidation),它让我们多了一种可选性,至于用哪种方式就看个人或团队习惯。 .netcore3.1中使用FluentValidation可以简单按以下步骤实现: 1、Nuget引用程序包: 2、Startup文件ConfigureServices方法的设置: 3、创建验证规则(格式比较固定其中LoginModel为被校验模型): 官方提供了很多验证规则,我们可以直接github下载源码查看,另外还可以自定义规则。 4、使用方法: 在mvc中可以直接使用内置模型校验,FluentValidation会处理好ModelState,兼容原有程序写法,如 还可以使用FluentValidation提供的校验方式,也是比较通用的方式: 总结 FluentValidation以集中管理化方式来处理规则,语法简单易懂,逻辑清晰,可扩展性好,让程序的后期运维也比较方便,而且github一直在维护,是个不错的可选组件。 .netcore3.1——验证组件FluentValidation 标签:system 开源 dem 执行 message rom 长度 config rac 原文地址:https://www.cnblogs.com/quluqi/p/12718981.html1 services.AddControllersWithViews()
2 .AddFluentValidation(config =>//添加FluentValidation验证
3 {
4 //程序集方式添加验证
5 config.RegisterValidatorsFromAssemblyContaining(typeof(Validation.LoginModelValidation));
6 //是否与MvcValidation共存,设置为false后将不再执行特性方式的验证
7 config.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
8 });
1 public class LoginModelValidation : AbstractValidator
1 if (!ModelState.IsValid)
2 {
3 return View("Index", model);
4 }
1 //代码校验方式
2 Validation.LoginModelValidation validationRules = new Validation.LoginModelValidation();
3 var validResult = validationRules.Validate(model);
4 if (!validResult.IsValid)
5 {
6 validResult.AddToModelState(ModelState, string.Empty);
7 return View("Index", model);
8 }
文章标题:.netcore3.1——验证组件FluentValidation
文章链接:http://soscw.com/essay/67256.html