一、介绍
FluentValidation 是一个基于 .NET 开发的验证框架,开源免费,而且优雅,支持链式操作,易于理解,功能完善,还是可与 MVC5、WebApi2 和 ASP.NET CORE 深度集成,组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言。
要使用验证框架, 需要在项目中添加对 FluentValidation.dll 的引用,支持 netstandard2.0 库和 .NET4.5 平台,支持.NET Core 平台,最简单的方法是使用 NuGet 包管理器引用组件。
大家可以在NuGet中直接安装,如下图:
二、使用
1、 基础类
/// <summary>
/// 返回结果类
/// </summary>
public class Result {
/// <summary>
/// 编码
/// </summary>
public int code { get; set; }
/// <summary>
/// 消息
/// </summary>
public string message { get; set; }
/// <summary>
/// 返回值
/// </summary>
public object result { get; set; }
/// <summary>
/// 时间戳
/// </summary>
public long timestamp {
get {
return ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
}
}
}
/// <summary>
/// 验证类
/// </summary>
public class AddAppraiseValidator : AbstractValidator<AddAppraiseParam>
{
/// <summary>
/// 验证参数
/// </summary>
public AddAppraiseValidator()
{
//级联模式
ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure;
//不为空
RuleFor(x => x.MeetingID).GreaterThan(0).WithMessage("会议ID不能为空");
RuleFor(x => x.Declarant).NotEmpty().WithMessage("申报人不能为空");
RuleFor(x => x.EType).NotEmpty().WithMessage("评价类型不能为空");
}
}
/// <summary>
/// 添加评价
/// </summary>
public class AddAppraiseParam
{
/// <summary>
/// 会议ID
/// </summary>
public int MeetingID { get; set; }
/// <summary>
/// 评价类型
/// </summary>
public string EType { get; set; }
/// <summary>
/// 评价信息
/// </summary>
public List<string> Evaluation { get; set; }
/// <summary>
/// 申报人
/// </summary>
public string Declarant { get; set; }
}
2、验证调用方法
Result result = new Result();
//验证参数
var validator = new Models.AddAppraiseValidator();
ValidationResult VResults = validator.Validate(param);
bool ValidationSucc = VResults.IsValid;
if (!ValidationSucc)
{
IList<ValidationFailure> failures = VResults.Errors;
result.code = 1001;
result.message = "参数错误!";
result.result = failures;
return Json(result);
}