【发布时间】:2015-03-31 19:14:17
【问题描述】:
我正在尝试使用 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(...) 规则中。
标签: c# fluentvalidation