简体   繁体   English

ASP.NET Core Web API - 如何使用 Fluent Validation 实现可选验证

[英]ASP.NET Core Web API - How to implement optional validation using Fluent Validation

I have this validator using Fluent Validation in ASP.NET Core-6 Web API:我有这个验证器在 ASP.NET Core-6 Web API 中使用 Fluent Validation:

public TransactionValidator()
{
    RuleFor(p => p.Token)
        .Cascade(CascadeMode.StopOnFirstFailure);
}

Token should either be null, or it has input value of exactly 6 lengths.令牌应该是 null,或者它的输入值正好是 6 个长度。

How do I get this done?我如何完成这项工作?

Fluent validation supports predicate validator via Must : Fluent 验证通过Must支持谓词验证器

RuleFor(p => p.Token)
    .Cascade(CascadeMode.Stop)
    .Must(s => s == null || s.Length == 6);

Or the same can be achieved with conditions :或者可以通过条件实现相同的目的:

RuleFor(p => p.Token)
    .Cascade(CascadeMode.Stop)
    .Length(6)
    .When(c => c.Token != null);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM