c# - 流畅的验证规则

标签 c# fluentvalidation

我使用了 Fluent Validator。我需要创建自己的规则。例如:

public class Address
{
    public string Street { get; set; }
}

public class AddressValidator:AbstractValidator<Address>
{
    public AddressValidator()
    {
        RuleFor(a => a.Street).NotEmpty().When(a => BeAValidAddress(a.Street));
    }

    private bool BeAValidAddress(string adress)
    {
        //...some logic
        return false;
    }
}

问题是,当我使用 AddressValidator 类的 Validate 方法时,IsValid 属性始终为 true。即使在 BeAValidAddress 方法中也只是“return false”。也许我忘记了一些重要的事情

最佳答案

一定要试试,我一直在用

RuleFor(a => a.Street).Must(x => x=="hello"); 
//will return false untill a.street == hello

RuleFor(a => a.Street).Must(BeAValidAddress())

private bool BeAValidAddress(string adress)
{
    //...some logic
    return false;
}

RuleFor(a => a.Street).Must(x => BeAValidAddress(x))

private bool BeAValidAddress(string adress)
{
    //...some logic
    return false;
}

所有这些都是一样的。

关于c# - 流畅的验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948300/

相关文章:

c# - Mutex 与信号量有什么关系?

c# - 为什么我不能使用带有显式运算符的接口(interface)?

c# - 使用附加调试器运行测试时如何防止 VerificationException?

asp.net-mvc - FluentValidation 客户端验证

c# - 如何将(启动的)ConfigureServices 方法拆分为多个文件

c# - 注册带有条件的开放泛型

c# - 如何让 Razor 从模板服务中的另一个程序集中查找 View

c# - 如何在 ASP.NET MVC 4 中获取 Controller 操作的自定义注释属性?

c# - ASP.Net 对象数据源 - 数据绑定(bind)

c# - 使用 Ninject 的 MVC 5 流畅验证