我有一个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);
}
我在这里做错了吗?
答案 0 :(得分:2)
经过一些测试后,GreaterThanOrEqualTo
不是问题所在。
它来自
RuleFor(x => x.Price).NotEmpty();
作为0
值被视为empty
!
如果你删除它,它将工作。