Fluent Validation 重载 (Less)GreaterThanOrEqualTo 方法不会呈现相同的结果
Fluent Validation overloaded (Less)GreaterThanOrEqualTo method doesn't render the same result
我正在使用 FluentValidation 库,我正在尝试找出原因:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(10);
呈现这个:
<input data-val-range-min="10" id="Quantity" name="Quantity" type="text" value="10"">
但相同方法的重载版本:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(m => m.QuantityMin);
呈现这个(data-val-range-min 为空):
<input data-val-range-min="" id="Quantity" name="Quantity" type="text" value="10"">
我对其进行了一些测试,当我将代码更改为如下内容时:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(m => this.GetMin(m));
function GetMin(ConfigurationView view)
{
return view.QuantityMin;
}
并在函数内部设置断点,调试时不会停在那里。它根本不会去功能。这是否意味着 Expression 参数无法编译,这就是 HTML 属性为空的原因?为什么?
我知道 LessThanOrEqualTo 和 GraterThanOrEqualTo 不支持客户端验证 - 或者至少不支持。我发现的所有文章都是几年前的事了,也许现在不是这样了?无论如何,我并不真正关心客户端验证,只关心数据属性。我想知道为什么同一方法的一个版本不呈现 HTML.
中的值的原因
谢谢。
我联系了FluentValidation的作者,基本上这个功能没有实现,很难实现,靠谱。我相信这是可能的,但我理解作者不这样做的论点:
https://github.com/JeremySkinner/FluentValidation/issues/428
我正在使用 FluentValidation 库,我正在尝试找出原因:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(10);
呈现这个:
<input data-val-range-min="10" id="Quantity" name="Quantity" type="text" value="10"">
但相同方法的重载版本:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(m => m.QuantityMin);
呈现这个(data-val-range-min 为空):
<input data-val-range-min="" id="Quantity" name="Quantity" type="text" value="10"">
我对其进行了一些测试,当我将代码更改为如下内容时:
this.RuleFor(m => m.Quantity).GreaterThanOrEqualTo(m => this.GetMin(m));
function GetMin(ConfigurationView view)
{
return view.QuantityMin;
}
并在函数内部设置断点,调试时不会停在那里。它根本不会去功能。这是否意味着 Expression 参数无法编译,这就是 HTML 属性为空的原因?为什么?
我知道 LessThanOrEqualTo 和 GraterThanOrEqualTo 不支持客户端验证 - 或者至少不支持。我发现的所有文章都是几年前的事了,也许现在不是这样了?无论如何,我并不真正关心客户端验证,只关心数据属性。我想知道为什么同一方法的一个版本不呈现 HTML.
中的值的原因谢谢。
我联系了FluentValidation的作者,基本上这个功能没有实现,很难实现,靠谱。我相信这是可能的,但我理解作者不这样做的论点: https://github.com/JeremySkinner/FluentValidation/issues/428