projet actuel:Nested Où (x => x.Condition = valeur,() => {}); fluentvalidation
- ASP.NET
- 4.5.1 MVC 5
je dois savoir si je peux nid When()
des déclarations comme celle-ci:
When(x => x.Cond1 == val1,
() => {
When(x => x.SubCond1 == SubVal1,
() => {
When(x => x.Final1 == finalVal1,
() => {
RuleFor(x => x.Field1)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
When(x => x.Final2 == finalVal2,
() => {
RuleFor(x => x.Field8)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
});
When(x => x.SubCond2 == SubVal2,
() => {
RuleFor(x => x.Field16)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
});
Parce que la dernière chose que je veux est de décorer plus de 30 champs de formulaire comme ceci:
RuleFor(x => x.Field1)
.NotEmpty().WithMessage("Should not be empty")
.When(x => x.Cond1 == val)
.When(x => x.SubCond1 == SubVal1)
.When(x => x.Final1 == finalVal1);
Cela est tout simplement indéfendable.
Aucune des conditions ne nécessite une validation, car aucune d'entre elles n'est réellement une zone modifiable par l'utilisateur (juste des valeurs sélectionnables par l'utilisateur); J'ai juste besoin de les comparer aux valeurs connues. J'utiliserais une instruction if/else si c'était en fait plus approprié, ce qui n'est pas le cas.
Le modèle est en grande partie plat, avec seulement le When()
de second niveau représentant un modèle importé, et le troisième niveau étant différentes façons de gérer des champs spécifiques dans le modèle importé.
Avez-vous essayé de le faire? –
Oui, et ça ne semble pas tirer. –
Clarification: ça ne semble pas tirer, c'est pourquoi j'ai posé la question. –