Je l'ai utilisé avec succès withMessage sous la forme suivante:Courant withMessage ne fonctionne pas correctement avec un setValidator
RuleFor(p => p.MyField)
.NotEmpty()
.WithMessage("{0} is Required",
p => p.SomeOtherField
);
Cela permet à la valeur de SomeOtherField à utiliser dans le message d'erreur.
J'ai une exigence plus complexe, où j'utilise setValidator avec mon propre PropertyValidator personnalisé comme suit:
Ce que je pensais travailler était la suivante:
RuleFor(x => x.MyField)
.SetValidator(
new RemoteValidator(
"Validate",
"Home",
System.Web.Mvc.HttpVerbs.Post,
"*.SomeOtherProperty1,*.SomeOtherProperty2")
)
.WithMessage("{0} is not valid",
p => p.MyOtherField
)
;
... mais il n'a pas . Lorsque la validation échoue, je reçois le message:
{0} n'est pas valide
par exemple. le {0} n'est pas remplacé
Des idées?
De here J'ai trouvé le concept de PropertyNameResolver qui semble pouvoir convenir, mais je n'arrive pas à comprendre comment le configurer. L'exemple sur ce lien donne:
ValidatorOptions.PropertyNameResolver = (type, member) => {
if(member != null) {
return member.Name + "Foo";
}
return null;
};
J'utilise Fluent Validations v5.6.2.