在FluentValidation中,有人知道如何纠正下面的语法吗:
RuleFor(x =>
double.Parse(x.MyValue, System.Globalization.CultureInfo.InvariantCulture)
).InclusiveBetween(0, 23).WithMessage("Number should be between (0,23]")
.NotEqual(0).WithMessage("Number cannot be 0");目前,它不会在文本框中呈现任何结果,除非我这样做:
RuleFor(x => x.MyValue)但是x.MyValue是一个字符串,我真的需要将它转换为double。它是一个字符串,因为其他与此无关的原因。
发布于 2017-07-26 20:40:51
解析lambda表达式中的值将导致ModelState属性和正在验证的属性之间不匹配。
在您的示例中,必须使用WithName(nameof(Model.MyValue))替换规则属性名称
最终结果将是:
RuleFor(x => double.Parse(x.MyValue, System.Globalization.CultureInfo.InvariantCulture))
.InclusiveBetween(0, 23).WithMessage("Number should be between (0,23]")
.NotEqual(0)
.WithMessage("Number cannot be 0")
.WithName("MyValue");https://stackoverflow.com/questions/45195767
复制相似问题