我使用了 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/