C# FluentValidation.When()始终为false

C# FluentValidation.When()始终为false,c#,fluentvalidation,C#,Fluentvalidation,使用FluentValidation 7.2.1(asp.net mvc#)如下 public QuestionValidator() { RuleFor(x => x.Answer).NotEmpty().When(x => 1 == 1); } NotEmpty()规则不呈现客户端。如果我删除.When(),它可以正常工作。请注意,我只使用“1==1”来确保我强制一个true条件来检查它不是我的属性 我尝试的“真实”代码如下所示。Required为true public

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

public QuestionValidator()
{
    RuleFor(x => x.Answer).NotEmpty().When(x => 1 == 1);
}
NotEmpty()规则不呈现客户端。如果我删除.When(),它可以正常工作。请注意,我只使用“1==1”来确保我强制一个true条件来检查它不是我的属性

我尝试的“真实”代码如下所示。Required为true

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

fluentvalidation作者的回复,尽管我仍在试图找到一种方法,根据服务器端处理将所需属性设置为客户端。指的是When(),但不响应客户端的更改

这种行为是正确的。客户端验证不支持带有When条件的规则。
这是MVC客户端验证的一个限制。clientsid只支持非常有限的规则子集。请参阅文档的这一部分:

来自fluentvalidation作者的回复,尽管我仍在试图找到一种基于服务器端处理将所需属性设置为客户端的方法。指的是When(),但不响应客户端的更改。这种行为是正确的。客户端验证不支持带有When条件的规则。这是MVC客户端验证的一个限制。clientsid只支持非常有限的规则子集。请参阅文档的这一部分:回答这个问题。我相信其他人以前也遇到过这个问题,将来也会遇到。最终的解决方案是在需要这样的逻辑时单独处理客户端验证。