在 Asp.Net 核心 3.0 中,基础 Class 验证未通过 Fluent 验证触发

Base Class Validations are not getting triggered with Fluent Validation in Asp.Net Core 3.0

我在 Asp.Net Core 3.0 Razor Pages 项目中使用 FluentValidation 版本:8.5.1。

我有一个从基础 class 派生的 class,如下所示:

public class BranchEditViewModel : BranchViewModel
{
    public Guid Id { get; set; }
    public bool Active { get; set; }
}

我正在尝试在更新方法中验证派生的 class,如下所示:

public async Task<IActionResult> OnPutAsync([FromForm] BranchEditViewModel model)

但是由于某些原因这不起作用。未调用验证。

当我为我的基础 class 创建 AbstractValidator 时,如下所示,验证器没有被调用。

public class BranchViewModelValidator : AbstractValidator<BranchViewModel>

但是如果我为我的派生 class 创建 AbstractValidator 如下所示,验证器将被调用。

public class BranchViewModelValidator : AbstractValidator<BranchEditViewModel>

请问为什么这不适用于基础 class?我做错了什么吗?

以下是我如何使它工作的。我创建了一个单独的 BranchEditViewModelValidator,然后从中调用了 Include(new BranchViewModelValidator())

public class BranchEditViewModelValidator : AbstractValidator<BranchEditViewModel>
{
    public BranchEditViewModelValidator()
    {
        Include(new BranchViewModelValidator());
    }
}