繁体   English   中英

Fluentvalidation 多个可能值的验证器

[英]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.

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