FluentValidation 范围在 Razor 视图中抛出 InvalidOperationException

FluentValidation range throws InvalidOperationException in Razor view

我正在使用 ASP MVC 5,而且我是使用 FluentValidation 的新手。

我正在尝试验证一个简单的范围。

我有一个class这样的

public int Property { get; set; }

这是我的验证

RuleFor(x => x.Property).NotEmpty()
                .GreaterThanOrEqualTo(1)
                .LessThanOrEqualTo(20);

当我想在剃须刀视图中使用它时 EditorFor

@Html.EditorFor(x => x.FactorK)

它抛出一个 InvalidOperationException

System.InvalidOperationException: The names of the validation types in discrete client validation rules must be unique. The following type of validation has been observed more than once: range

奇怪的是,当尝试只使用一种方法(GreaterThanOrEqualLessThanOrEqual)时它工作正常。

例如,

RuleFor(x => x.Property).NotEmpty()
                .GreaterThanOrEqualTo(1);

这有效。

我做错了什么?

谢谢!

阅读文档,我找到了 InclusiveBetween validator

这就是我的解决方案。

RuleFor(x => x.Property).NotEmpty()
    .InclusiveBetween(1, 20);

错误信息解释错误原因,GreaterThanOrEqualTo和LessThanOrEqualTo都是"range"验证类型。 尝试改用 InclusiveBetween。