Fluent验证器:当另一个字段是枚举中的特定值时,如何验证字符串是否为空



只有当TypeOther时,我才需要为Message添加验证

我尝试使用Must,当类型为Other时验证有效,但当类型为First时,我收到"The specified condition was not met for 'message'.",

enum Types
{
First, Second, Other
}
class MyRequest
{
public string Message { get; set; }

public Types Type { get; set; }
}
public MyRequestValidator()
{
RuleFor(x => x.Type)
.IsInEnum();
RuleFor(x => x.Message)
.Must((model, field) =>
{
if (model.Type == Types.Other)
{
return true;
}
return false;
})
.NotEmpty()
.WithMessage("Message is required when type is Other")
.MaximumLength(10);
}

当另一个道具是枚举中的特定值时,如何验证字符串?

看起来像是SaeedEsmaeelinejad提出时,我的问题

When(x => x.Type == Types.Other, () => {
RuleFor(x => x.Message)
.NotEmpty()
.WithMessage("Message is required when type is Other")
.MaximumLength(10);
});

最新更新