![](/img/trans.png)
[英]FluentValidation : Is it possible to add a RuleSet while invoking a validator using ValidateAndThrow
[英]Fluentvalidation Validator for multiple possible values
Fluentvalidation是否有任何内置的 function 来验证多个可能的选项以通过/失败,类似于 SQL In 运算符?
例如:在下面的代码中,我需要确保 user_status 必须是 ("Active", "Expired", "Blocked"......................) 等。
而对于 user_role 它应该是 user_role("admin", "manager", "viewer"......)
public class Users
{
public string user_status { get; set; }
public string user_role { get; set; }
}
public class UpdateUserValidator : NullReferenceAbstractValidator<Users>
{
public UpdateUserValidator()
{
RuleFor(user => user.user_status).NotNull();
}
}
据我所知,没有内置的验证器可以这样做。
您可以使用.Must
和一组接受的值。
这样的事情(当然,接受值的集合可以在变量中,并在must和message部分中使用)。
RuleFor(x =>x.user_status)
.Must(x => new[]{"Active", "Expired", "Blocked"}.Contains(x))
.WithMessage("User status should be either 'active', 'expired' or 'blocked'");
或者,您当然可以创建自己的自定义验证程序。
接受的答案中的代码片段对我不起作用,我使用的工作规则是
RuleFor(_ => _.user_status)
.Matches(@"^(Active|Expired|Blocked)")
.WithMessage("User status should be either 'active', 'expired' or 'blocked'");
流畅验证 11.2.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.