我收到验证消息“值 xxx 对于 yyy 无效”。当我为双精度类型发布错误的值时,就会发生这种情况。我不知道如何改变它。
不幸的是,FluentValidation 无法覆盖这一点 - MVC 验证的可扩展性模型在许多地方都受到一定限制,而且我无法找到覆盖此特定消息的方法。
您可以使用的另一种方法是在视图模型上定义两个属性 - 一个作为字符串,一个作为可为空的双精度值。您可以将 string 属性用于 MVC 绑定目的,并且 double 属性将执行转换(如果可以的话)。然后您可以使用它进行验证:
public class FooModel {
public string Foo { get; set; }
public double? ConvertedFoo {
get {
double d;
if(double.TryParse(Foo, out d)) {
return d;
}
return null;
}
}
}
public class FooValidator : AbstractValidator<FooModel> {
public FooValidator() {
RuleFor(x => x.ConvertedFoo).NotNull();
RuleFor(x => x.ConvertedFoo).GreaterThan(0).When(x => x.ConvertedFoo != null);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)