2017-03-04 1 views
1

Avec validation je parle couramment l'habitude d'écrire des règles qui sont spécifiques d'une propriété unique du modèleComment écrire des règles de validation qui ne sont pas liées à une seule propriété du modèle?

RuleFor(x => x.Name).NotEmpty().WithMessage("Name is required.") 

La règle ci-dessus par exemple appliquer seulement au nom de la propriété de mon modèle.

Je me demande s'il est possible d'écrire une règle plus générale qui ne se rapporte à une propriété unique, mais de valider mon modèle en tenant compte des valeurs des autres biens de mon modèle comme le sexe, l'âge et la nationalité

+0

Voir [** En utilisant AbstractValidator.Custom **] (https://github.com/JeremySkinner/FluentValidation/wiki/e.-Custom-Validators) –

Répondre

3

Si je comprends bien ce que vous demandez, je pense que vous pouvez accomplir en écrivant une règle sur le modèle entier comme celui-ci:

RuleFor(e => e).Must(e => e.Sex == "M" && e.Nationality == "Italian" && e.Age >= 18).WithMessage("Only Italian male older than 18 yo can submit the request"); 
0

En ce qui concerne comme je le sais, vous ne pouvez pas faire cela, mais je ne suis pas convaincu que je comprends parfaitement ce que vous demandez. Quel genre de validation voulez-vous utiliser contre des choses comme le sexe, l'âge et la nationalité en même temps?

+1

Je pense qu'il veut dire une règle qui valide contre une logique de validation qui n'est pas spécifique à une seule propriété mais implique des valeurs d'autres propriétés par exemple je pense qu'il veut valider le modèle si le sexe est Homme 20 ans et nationalité italienne, ou sexe Femme 18 ans et toute nationalité ... etc etc. –