我正在使用ASP MVC 5,并且使用FluentValidation是新手。
我正在尝试验证一个简单的范围。
我有这样的课程
public int Property { get; set; }
这是我的验证
RuleFor(x => x.Property).NotEmpty()
.GreaterThanOrEqualTo(1)
.LessThanOrEqualTo(20);
当我想使用EditorFor
在剃须刀视图中使用它时
@Html.EditorFor(x => x.FactorK)
它抛出了一个InvalidOperationException
System.InvalidOperationException:验证类型的名称 离散客户端验证规则必须是唯一的。以下类型的 已多次观察到验证:范围
奇怪的是,当尝试仅使用一种方法(GreaterThanOrEqual
或LessThanOrEqual
(时,它可以正常工作。
例如
RuleFor(x => x.Property).NotEmpty()
.GreaterThanOrEqualTo(1);
这行得通。
我做错了什么?
谢谢!
错误消息解释了错误的原因,GreaterThanOrEqualTo 和 LessThanOrEqualTo 都是"范围"验证类型。 尝试改用"包容性之间"。
阅读文档,我找到了InclusiveBetween
验证器。
这就是我的解决方案。
RuleFor(x => x.Property).NotEmpty()
.InclusiveBetween(1, 20);