C# 处理已处理或转换的值时的语法规则
在FluentValidation中,是否有人知道我如何更正以下语法:C# 处理已处理或转换的值时的语法规则,c#,fluentvalidation,C#,Fluentvalidation,在FluentValidation中,是否有人知道我如何更正以下语法: RuleFor(x => double.Parse(x.MyValue, System.Globalization.CultureInfo.InvariantCulture) ).InclusiveBetween(0, 23).WithMessage("Number should be between (0,23]") .NotEqual(0).WithMessage("Num
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。出于与此无关的其他原因,它是一个字符串。解析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");
解析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");