ASP.NET Core Web API - 如何使用 Fluent Validation 实现可选验证
ASP.NET Core Web API - How to implement optional validation using Fluent Validation
我有这个验证器在 ASP.NET Core-6 Web API 中使用 Fluent Validation :
public TransactionValidator()
{
RuleFor(p => p.Token)
.Cascade(CascadeMode.StopOnFirstFailure);
}
令牌应该为空,或者它的输入值正好是 6 个长度。
如何完成此操作?
Fluent 验证支持 predicate validator 通过 Must
:
RuleFor(p => p.Token)
.Cascade(CascadeMode.Stop)
.Must(s => s == null || s.Length == 6);
或者用conditions也可以达到同样的效果:
RuleFor(p => p.Token)
.Cascade(CascadeMode.Stop)
.Length(6)
.When(c => c.Token != null);
我有这个验证器在 ASP.NET Core-6 Web API 中使用 Fluent Validation :
public TransactionValidator()
{
RuleFor(p => p.Token)
.Cascade(CascadeMode.StopOnFirstFailure);
}
令牌应该为空,或者它的输入值正好是 6 个长度。
如何完成此操作?
Fluent 验证支持 predicate validator 通过 Must
:
RuleFor(p => p.Token)
.Cascade(CascadeMode.Stop)
.Must(s => s == null || s.Length == 6);
或者用conditions也可以达到同样的效果:
RuleFor(p => p.Token)
.Cascade(CascadeMode.Stop)
.Length(6)
.When(c => c.Token != null);