我试图验证三个字段中只有一个具有使用FluentValidation的值。使用FluentValidation验证互斥字段
RuleFor(x => x.Date1)
.Must(x => !x.HasValue)
.When(x => x.Date2.HasValue || x.Date3.HasValue)
.WithMessage("Select only one of Date 1, Date 2 and Date 3");
这对其他2个日期重复。如预期的那样,这产生了每个匹配规则的消息。
还有其他的规则,所以有没有办法执行其他规则,但在这三个中的第一个失败?我已经看到了我可以在哪里设置CascadeMode.StopOnFirstFailure全球范围内,但我希望这三者之外的其他规则像目前一样工作。
三者有机结合的规则在单一.Custom(...)规则。 – Maarten 2015-03-31 19:17:58