我遇到了FluentValidation问题,我想显示一条消息,而不管给定链中的验证错误。例如,我为下面的一个属性定义了一个验证链。我期望链会被评估,任何失败都会导致下面WithMessage()
调用中定义的消息。但是,它似乎是短路并且仅显示遇到的第一个错误的FluentValidation默认错误消息。请参见下面的代码:规则链的一条消息?
RuleFor(s => s.ProposalDetail.AgeMin).NotNull()
.GreaterThanOrEqualTo(1)
.LessThanOrEqualTo(99)
.WithMessage("Minimum Age entry is required and must range from 1 to 99 years.");
发生了什么事是,AgeMin属性为空,所以第一个NotNull()
检查失败,验证消息的内容“的议案‘详细年龄最小’不能为空。” Proposal Detail是封装视图模型的名称。 我已经尝试将整个验证器的CascadeMode设置为CascadeMode.Continue,但它没有效果。
如何为一个属性验证链完成一条消息?
'使用上面的代码,将返回默认验证消息,而不是客户汤姆消息在最后'哪里是默认消息声明..?你是否可以发布所有相关的代码..还有你检查了[.NET文档/示例的流畅验证](https://fluentvalidation.codeplex.com/wikipage?title=CreatingAValidator) – MethodMan
是的,我已经搜遍了文档, t找到了一个类似的例子。我想我必须使用一个规则来使用Must()来封装所有的规则来完成我想要做的事情。我会认为它是一个简单的用例。默认的FluentValidation消息返回''建议明细。 Age Min'不能为空',因为'NotNull()'是链中的第一个调用。我已经尝试为验证器设置'CascadeMode = CascadeMode.Continue',它没有任何效果。 – TimeBomb006
请提供一个演示您的问题的[mcve]。它必须是我们可以运行的可编译代码。 – Enigmativity