模型验证组件——FluentValidation
之前在博客园有幸从网友那里得知一个C#的模型验证组件(哈 不知道这样表述正确不),组件的功能比较简单,主要是实现了对Model的验证,例如验证用户名是否为空,密码长度是不是多余6个字符,当然还有其他更加灵活的的验证方法。这里介绍给大家知道一下!
该组件的名称叫“FluentValidation”,顾名思义——“流畅验证”(- -!)。 下面看一段官方网站上面给出的代码就知道为什么“流畅”了。代码如下:
- using FluentValidation;
- public class CustomerValidator: AbstractValidator<Customer> {
- public CustomerValidator() {
- RuleFor(customer => customer.Surname).NotEmpty();
- RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name");
- RuleFor(customer => customer.Company).NotNull();
- RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);
- RuleFor(customer => customer.Address).Length(20, 250);
- RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
- }
- private bool BeAValidPostcode(string postcode) {
- // custom postcode validating logic goes here
- }
- }
- Customer customer = new Customer();
- CustomerValidator validator = new CustomerValidator();
- ValidationResult results = validator.Validate(customer);
- bool validationSucceeded = results.IsValid;
- IList<ValidationFailure> failures = results.Errors;
如果使用过ASP.NET MVC2.0或者以上版本的同学应该对这种代码觉得很熟悉^—^
目前该组件到了2.0版本,感觉我知道的比较晚了,下面给出相关链接:
- FluentValidation首页地址:http://fluentvalidation.codeplex.com/
- FluentValidation下载地址:http://fluentvalidation.codeplex.com/releases/view/59101
- FluentValidation文档地址:http://fluentvalidation.codeplex.com/documentation
文档不多不过写得比较详细,组件的可扩展性也比较强!一个优秀的组件最大的特点就是功能走接口,扩展靠继承,FluentValidation很华丽地做到这一点!在多层结构的项目中FluentValidation可以很好地并且方便地对模型传参进行差错校验,不止可以减少代码量,重要的一点是统一了代码风格!
模型验证组件——FluentValidation的更多相关文章
- asp.net mvc 模型验证组件——FluentValidation
asp.net mvc 模型验证组件——FluentValidation 示例 using FluentValidation; public class CustomerValidator: Abst ...
- 模型验证组件 FluentValidation
FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...
- .NET Core中的验证组件FluentValidation的实战分享
今天有人问我能不能出一篇FluentValidation的教程,刚好今天在实现我们的.NET Core实战项目之CMS的修改密码部分的功能中有用到FluentValidation,所以就以修改用户密码 ...
- 验证组件——FluentValidation
FluentValidation FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开 ...
- 验证组件FluentValidation的使用示例
官方文档:https://fluentvalidation.net/start#complex-properties 示例Demo:https://github.com/DavideYang125/F ...
- FluentValidation 模型验证
FluentValidation 是 .NET 下的模型验证组件,和 ASP.NET MVC 基于Attribute 声明式验证的不同处,其利用表达式语法链式编程,使得验证组件与实体分开.正如 Flu ...
- 【翻译】asp.net core中使用FluentValidation来进行模型验证
asp.net core中使用FluentValidation FluentValidation 可以集成到asp.net core中.一旦启用,MVC会在通过模型绑定将参数传入控制器的方法上时使用F ...
- 【翻译】FluentValidation验证组件的使用
由于本文是翻译,所以将原文原原本本的搬上来,大家看原文有什么不懂的也可以对照这里. 给出地址:https://fluentvalidation.net/ FluentValidation fluent ...
- .NET平台开源项目速览(10)FluentValidation验证组件深入使用(二)
在上一篇文章:.NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一) 中,给大家初步介绍了一下FluentValidation验证组件的使用情况.文章从构建间的验证器开 ...
随机推荐
- How much training data do you need?
How much training data do you need? //@樵夫上校: 0. 经验上,10X规则(训练数据是模型参数量的10倍)适用与大多数模型,包括shallow networ ...
- 关于31天App教程示例中一些因SDK版本而出现的问题(转)
由于国外那个知名的31天案例教程比较老,所用官方API是2008年时的2.X,所以在现在的Xcode3-4之后或多或少都有编译警告和错误信息.必须做些适应iOS版本的代码更改才能顺利编译通过. Day ...
- Hibernate4 执行存储过程
Hibernate3.3.2版本中getSession().connection()已被弃用,hibernate4中官方推荐使用Session doWork()方法进行jdbc操作 当Hibernat ...
- cocos基础教程(12)点击交互的三种处理
1.概述 游戏也好,程序也好,只有能与用户交互才有意义.手机上的交互大致可以分为两部分:点击和输入.其中点击更为重要,几乎是游戏中全部的交互.在Cocos2d-x 3.0中,更改了dispatch机制 ...
- 备份还原mysql数据库
Windows下cmd命令行中备份还原mysql数据库 先cmd 上cd 到mysql的安装bin目录下,然后再运行下面的命令. 例如:cd C:\Program Files\MySQL\MySQL ...
- Unity3D模型的细致纹理问题解决办法
http://hunterwang.diandian.com/post/2012-09-28/40039798509 也许有人也遇到过同样的问题,也许解决方式不同,我来介绍一下偶尔尝试发现的解决办法. ...
- unity3d 参考坐标系
原地址:http://www.cnblogs.com/88999660/archive/2013/04/01/2993844.html 参考坐标系(Reference Coordinate Syste ...
- ruby开发过程中的小总结
(1)建表的时候注意保留字 在新建的表里无法插入一列的值, 报错信息是:Can't mass-assign protected attributes,这一列的列名是type,查了一下发现是因为type ...
- [BZOJ1067][SCOI2007]降雨量
[BZOJ1067][SCOI2007]降雨量 试题描述 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z<X,Z年的降雨量严格 ...
- poj 3026 bfs+prim Borg Maze
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9718 Accepted: 3263 Description The B ...