Must 和 NotEqual 直到所有 NotEmpty Valid 才触发

Must and NotEqual not triggering until all NotEmpty Valid

如果“.NotEmpty”字段为空,则规则文本会正确显示,但“.NotEqual”和“.Must”则不会。

只有当“.NotEmpty”有效时,其他验证才会显示。

我试过将“.NotEmpty”放在末尾,但还是一样的问题。 如果我删除 '.NotEmpty' 它工作正常。 是否有我不知道的 Fluent 条件?

RuleFor(c => c.Consent).Must((ac, Consent) => ac.Consent ==
true).WithMessage("You must agree to the consent statement to
continue"); 
RuleFor(c => c.FirstName).NotEmpty().Length(1, 50);  
RuleFor(x =>
x.Title).NotEqual(CandidateTitle.PleaseSelect).WithMessage("You must
select a title");

Must 并且我认为 NotEqual 不支持客户端 OOTB。绝对不是。

它们将作为 http 请求管道的一部分在服务器端进行测试(当 FV 中间件添加为设置的一部分时)。这可能就是为什么您只看到 NotEmpty 规则被自己测试,而其他规则在该规则通过后被测试。

如果您希望它们在客户端进行测试,您必须编写一个客户端适配器,该适配器映射到将执行客户端验证的 javascript 函数。对于 Must,您必须先创建一个验证器,然后再创建一个适配器。