asp.net core web api 项目如何使用 FluentValidation 自动验证

问题描述 投票:0回答:2

我想使用 fluidvalidation 自动验证异常,但现在还做不到。如果我将 Validator 放在同一个项目中,它会起作用,但如果我将 Validator 放在另一个库中,它将不起作用。 以下项目一

public class TestValidator : AbstractValidator<WeatherForecast>
{
    public TestValidator()
    {
        RuleFor(x => x.Summary).NotEmpty().WithMessage("Username or email are required");
    }

}

以下项目二

我说注册和验证放在不同的项目,导致验证异常。

services.AddMvc(options =>
    {
        options.Filters.Add(new ExceptionFilter());
    })
    .AddFluentValidation(options =>
    {
        options.RegisterValidatorsFromAssemblyContaining<Startup>();
    });
asp.net-core fluentvalidation
2个回答
1
投票

您需要将启动更改为:

 .AddFluentValidation(options =>
{
    options.RegisterValidatorsFromAssemblyContaining<TestValidator>();
});

测试结果:


0
投票

今天这个语法已经过时了, 实现这一目标的新方法是

  builder.Services.AddFluentValidationAutoValidation();
     builder.Services.AddFluentValidationClientsideAdapters();
     builder.Services.AddValidatorsFromAssembly(typeof(Program).Assembly);
© www.soinside.com 2019 - 2024. All rights reserved.