FluentValidation .When() 始终为 false
FluentValidation .When() always false
使用 FluentValidation 7.2.1 (asp.net mvc c#) 如下
public QuestionValidator()
{
RuleFor(x => x.Answer).NotEmpty().When(x => 1 == 1);
}
NotEmpty() 规则不呈现客户端。如果我删除 .When() 它工作正常。请注意,我只使用“1==1”来确保我强制使用 true 条件来检查它不是我的 属性。
我尝试的 'real' 代码如下,并且 .Required 为真。
public QuestionValidator()
{
RuleFor(x => x.Answer).NotEmpty().When(x => x.Required);
}
fluentvalidation 作者的回复虽然我仍在尝试找到一种方法来根据服务器端处理在客户端设置所需的属性。的 When() 但没有对客户端的变化做出反应。
这种行为是正确的。客户端验证不支持带有 When 条件的规则。
这是 MVC 客户端验证的限制。 clientid 仅支持非常有限的规则子集。请参阅文档的这一部分:https://github.com/JeremySkinner/FluentValidation/wiki/i.-ASP.NET-Core-integration#clientside-validation
使用 FluentValidation 7.2.1 (asp.net mvc c#) 如下
public QuestionValidator()
{
RuleFor(x => x.Answer).NotEmpty().When(x => 1 == 1);
}
NotEmpty() 规则不呈现客户端。如果我删除 .When() 它工作正常。请注意,我只使用“1==1”来确保我强制使用 true 条件来检查它不是我的 属性。
我尝试的 'real' 代码如下,并且 .Required 为真。
public QuestionValidator()
{
RuleFor(x => x.Answer).NotEmpty().When(x => x.Required);
}
fluentvalidation 作者的回复虽然我仍在尝试找到一种方法来根据服务器端处理在客户端设置所需的属性。的 When() 但没有对客户端的变化做出反应。
这种行为是正确的。客户端验证不支持带有 When 条件的规则。 这是 MVC 客户端验证的限制。 clientid 仅支持非常有限的规则子集。请参阅文档的这一部分:https://github.com/JeremySkinner/FluentValidation/wiki/i.-ASP.NET-Core-integration#clientside-validation