FluentValidation sur le numéro de la question
Je suis en utilisant FluentValidation dans mon ASP.NET MVC 3.
J'ai un MaxNumberTeamMembers propriété, à mon avis, le modèle en tant que tel:
///<summary>
///Gets or sets the maximum number of team members.
///</summary>
public int MaxNumberTeamMembers { get; set; }
Je veux savoir si le jeu de règles suivant est possible:
- Sur l'extrémité avant, si la zone de texte est vide, alors je veux un "MaxNumberTeamMembers est nécessaire" message à afficher
- Si le numéro saisi est inférieur à 1 alors je veux un message à afficher "MaxNumberTeamMembers doit être supérieur ou égal à 1".
Ce que serait le jeu de règles pour le dessus de ressembler?
J'ai la suite mais il ne fonctionne pas sur le GreaterThan partie, si j'entre 0:
RuleFor(x => x.MaxNumberTeamMembers)
.NotEmpty()
.WithMessage("Max. number of team members is required")
.GreaterThan(0)
.WithMessage("Max. number of team members must be greater than 0");
Mise à JOUR 2011-02-14:
RuleFor(x => x.MinNumberCharactersCitation)
.NotNull()
.WithMessage("Min. number of characters for citation is required")
.GreaterThanOrEqualTo(1)
.WithMessage("Min. number of characters for citation must be greater than or equal to 1")
.LessThanOrEqualTo(x => x.MaxNumberCharactersCitation)
.WithMessage("Min. number of characters must be less than or equal to max. number of characters");
OriginalL'auteur Brendan Vogt | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez gérer le vide cas, vous avez besoin d'un nullable entier sur votre modèle, parce que sinon c'est le modèle par défaut de liant qui va ajouter automatiquement une erreur de validation lorsqu'il essaie d'analyser la chaîne vide pour un non nullable entier:et vous pourriez avoir de la suite de la validation des règles sur ce bien:
Mise à JOUR:
Le suivant fonctionne très bien avec la dernière version de FluentValidation:
Comment pourrais-je ajouter une expression régulière à cette afin que l'utilisateur saisit une valeur numérique dans la zone de texte? Est-ce par tous les moyens possibles?
Veuillez voir mon post mis à jour.
Vogt, vous êtes correct avec la dernière version de FluentValidation vous n'avez plus besoin pour rendre votre propriété une nullable entier et les deux NotNull et NotEmpty devrait fonctionner. Aussi loin que l'expression régulière, je crains qu'il ne s'applique qu'aux propriétés de type string et il ne peut être fait avec des valeurs entières.
Vogt, ce n'est pas une limitation de, la fluidité de la validation du cadre. C'est l'ASP.NET MVC œuvres. Le modèle de classeur par défaut s'exécute avant le validateur et quand il rencontre une propriété de type int, il tente d'analyser la valeur de la demande et, si elle échoue, elle ajoute une erreur de modèle.
OriginalL'auteur Darin Dimitrov
c'est de travailler avec FluentValidation version 3.2
OriginalL'auteur Morteza