FluentValidation .When()始终为false

时间:2017-10-24 21:38:23

标签: c# fluentvalidation

使用FluentValidation 7.2.1(asp.net mvc c#)如下

public QuestionValidator()
{
    RuleFor(x => x.Answer).NotEmpty().When(x => 1 == 1);
}

NotEmpty()规则不呈现客户端。如果我删除.When()它可以正常工作。请注意,我只使用" 1 == 1"确保我强迫一个真实的条件检查它不是我的财产。

真实的'我尝试的代码如下,.Required是真的。

public QuestionValidator()
{
    RuleFor(x => x.Answer).NotEmpty().When(x => x.Required);
}

1 个答案:

答案 0 :(得分:1)

来自fluentvalidation的作者的回复虽然我仍然试图找到一种方法来根据服务器端处理来设置客户端所需的属性。 of When()但不对客户端的变化作出反应。

这种行为是正确的。客户端验证不支持使用When条件的规则。 这是MVC客户端验证的限制。仅支持非常有限的规则子集clientid。请参阅文档的此部分:https://github.com/JeremySkinner/FluentValidation/wiki/i.-ASP.NET-Core-integration#clientside-validation