【问题标题】:How to Validating a string against a list of strings in Fluent validation?如何在 Fluent 验证中针对字符串列表验证字符串?
【发布时间】:2016-03-19 23:19:46
【问题描述】:

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

在服务器端,我使用了 fluent 验证,用于指定验证规则。

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

我是否可以指定一种方法来验证用户在不允许的电子邮件域列表中输入的值。

RuleFor(x=>x.EMail). and something 

谢谢

【问题讨论】:

  • RuleFor(x => listOfBannedDomains.Contains(GetDomainFromEmail(x.Email)) == false);

标签: c# .net validation model-view-controller fluentvalidation


【解决方案1】:

好吧,你可以实现这样的东西:

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.
        }
    }

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    相关资源
    最近更新 更多