在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。由于与此无关的其他原因,这是一个故意的字符串。
答案 0 :(得分:0)
在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");