如何在 Fluent 验证中根据字符串列表验证字符串?

CSh*_*ped 2 .net c# validation model-view-controller fluentvalidation

我有一个电子邮件地址字段,有一个客户端验证,不允许少数临时域,如 tempmailder.com 或 dispostable.com。

在服务器端,我使用了流畅的验证来指定验证规则。

web.config 文件中不允许使用逗号分隔字符串的临时域。

有没有一种方法可以指定根据不允许的电子邮件域列表验证用户输入的值。

RuleFor(x=>x.EMail). and something 
Run Code Online (Sandbox Code Playgroud)

谢谢

Oma*_*ani 6

好吧,你可以实现这样的事情:

public class MyObjValidator : AbstractValidator<MyObj> {
        public MyObjValidator()
        {
            // Other rules for my object
            // .
            // .
            RuleFor(o => o.Email)
                .NotEmpty()
                .Must(BeNonBannedDomain)
                .WithMessage("Please specify a valid email address");
        }

        private bool BeNonBannedDomain(string email)
        {
            var domainName = GetDomainName(email); // a method to extract the dmain name from the email
            return !someListOfBannedDomains.Contains(domainName); // a list of all the banned domains that I need to check against.
        }
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。