在 ASP.NET Core 中使用 FluentValidation 进行验证
程序员文章站
2022-06-12 16:22:03
...
从 NuGet 安装 FluentValidation
使用 FluentValidation 时,核心的包时 FluentValidation 和 FluentValidation.AspNetCore。
使用 NuGet 包管理控制台运行以下命令进行安装:
Install-Package FluentValidation
Install-Package FluentValidation.AspNetCore
争对 Resource类 建立 FluentValidation
首先以下是 Resource类:
public class PostResource
{
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public string Author { get; set; }
public DateTime UpdateTime { get; set; }
public string Remark { get; set; }
}
以下是对 PostResource 建立验证示例:
// 需要继承于 AbstractValidator<T> ,T 表示要验证的类
public class PostResourceValidator : AbstractValidator<PostResource>
{
public PostResourceValidator() {
// 配置 Author
RuleFor(x => x.Author)
.NotNull() //不能为空
.WithName("作者")
//.WithMessage("required|{PropertyName}是必填的")
.WithMessage("{PropertyName}是必填的")
.MaximumLength(50)
//.WithMessage("maxlength|{PropertyName}的最大长度是{MaxLength}")
.WithMessage("{PropertyName}的最大长度是{MaxLength}");
// 配置 Body
RuleFor(x => x.Body)
.NotNull()
.WithName("正文")
.WithMessage("required|{{PropertyName}是必填的")
.MinimumLength(100)
.WithMessage("minlength|{PropertyName}的最小长度是{MinLength}");
}
}
在Startup中对写好的验证进行注册
在Startup类的ConfigureServices方法中进行注册
//services.AddTransient<IValidator<ResourceModel>, 验证器>();
services.AddTransient<IValidator<PostResource>, PostResourceValidator>();
- 参考文档:
推荐阅读
-
在ASP.NET Core中创建内部使用Scoped服务的Quartz.NET宿主服务
-
在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射
-
jwt-在asp.net core中的使用jwt
-
使用Rotativa在ASP.NET Core MVC中创建PDF
-
ASP.NET Core WebApi中使用FluentValidation验证数据模型的方法
-
ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)
-
如何使用Rotativa在ASP.NET Core MVC中创建PDF详解
-
ASP.NET Core Web 应用程序系列(五)- 在ASP.NET Core中使用AutoMapper进行实体映射
-
在ASP.NET Core 3.0中使用Swagger
-
asp.net core中如何使用cookie身份验证