FluentValidation和值为0的GreaterThanOrEqualTo规则

时间:2012-10-05 08:35:15

标签: validation fluentvalidation

我有一个fluentvalidation问题(版本3.4.6.0 with fluentvalidation.MVC4,jQuery validation 1.9.0.1),当值为0时验证将失败,但不应该。这是我的代码和失败的测试。

public class SomeModel
{
    public string Id { get; set; }
    public decimal Price { get; set; }
}

public class EditMachineValidator : AbstractValidator<SomeModel>
{
    public SomeModelValidator()
    {
        RuleFor(x => x.Price).NotEmpty();
        RuleFor(x => x.Price).GreaterThanOrEqualTo(0m);
    }
}

[Fact]
public void Should_Not_Have_Error_When_Price_Is_Zero()
{
    var validator = SomeModelValidator();
    validator.ShouldNotHaveValidationErrorFor(x => x.Price, 0m);
}

我在这里做错了吗?

1 个答案:

答案 0 :(得分:2)

经过一些测试后,GreaterThanOrEqualTo不是问题所在。

它来自

RuleFor(x => x.Price).NotEmpty();

作为0值被视为empty! 如果你删除它,它将工作。