1

我有一个 fluentvalidation 问题(版本 3.4.6.0 和 fluentvalidation.MVC4,jQuery 验证 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);
}

我在这里做错了吗?

4

1 回答 1

2

经过一些测试, GreaterThanOrEqualTo是没有问题的。

它来自

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

作为一个0值被认为是empty!如果您删除它,它将起作用。

于 2012-10-09T14:13:32.853 回答