je dois valider code, - il doit toujours avoir une valeur (non conditionnelle)conditionnelle et non conditionnelle dans une Fluent règle de validation
// General Rule:
RuleFor(m => m.Zip).NotEmpty()
.WithMessage("Zip code is required.");
Si c'est aux États-Unis, la valeur doit correspondre regex (conditionnel)
// United States Rule:
RuleFor(m => m.Zip)
.Matches(ZipCodeRegEx)
.WithMessage("Invalid Zip Code")
.When(m => IsUnitedStates(m.CountryCode));
Mon but est de combiner la règle générale et aux États-Unis dans la règle une règle , j'ai essayé:
// doesn't check general rule for non-us
RuleFor(m => m.Zip)
.NotEmpty()
.WithMessage("Zip code is required.")
.Matches(ZipCodeRegEx)
.When(m => IsUnitedStates(m.CountryCode))
.WithMessage("Invalid Zip Code");
// doesn't check general rule for non-us
RuleFor(m => m.Zip)
.NotEmpty()
.When(m => true)// always
.WithMessage("Zip code is required.")
.Matches(ZipCodeRegEx)
.When(m => IsUnitedStates(m.CountryCode))
.WithMessage("Invalid Zip Code");
Comment puis-je écrire cela en une seule règle?
Quel type de données est Zip? un string? Sur quoi avez-vous défini ValidatorOptions.CascadeMode? – Stout01
Zip est une chaîne, CascadeMode est Continue. – user2822208
Pouvez-vous poster votre méthode IsUnitedStates? – Stout01