我使用FluentValidation在MVC5 C#ASP.NET中使用。我正在尝试将字段与其他两个字段进行比较,但收到错误。
我自定义" AbstractValidator"中的代码如下:
RuleFor(x => x.Length).LessThanOrEqualTo(y => y.LengthMax)
.GreaterThanOrEqualTo(z => z.LengthMin);
当视图试图渲染"长度"使用EditFor()
字段显示此错误...
其他信息:不显眼的客户端中的验证类型名称 验证规则必须是唯一的。以下验证类型是 不止一次见过:范围
如何将一个值与同一模型的另外两个值进行比较。
答案 0 :(得分:5)
如果您不介意丢失javascript验证,可以使用FluentValidation的Must扩展
RuleFor(m=> m.Length).Must((model, field) => field >= model.LengthMin && field <= model.LengthMax);
HTH
答案 1 :(得分:1)
请注意,FluentValidation也适用于ASP.NET MVC 客户端验证,但并非所有规则都受支持。例如, 使用条件定义的任何规则(使用When / unless),自定义 验证器或对Must的调用不会在客户端运行。该 客户端支持以下验证器:
* NOTNULL / NotEmpty
*匹配(正则表达式)
* InclusiveBetween(范围)
*信用卡式
*电子邮件
* EqualTo(跨财产平等比较)
*长度
有关于在SO上滚动您自己的流利属性验证器的更多信息。