2010-08-28 1 views
0

J'ai un problème avec l'implémentation de VAB. Nous utilisons ASP.NET MVC 1.0bibliothèque d'entreprise VAB Problèmes d'implémentation

J'ai une propriété "Prénom" et nous voulons avoir 2 validations.

  1. Non nul Validator
  2. RegEx Validator (pour arrêter certains caractères)

Maintenant, si je laisse le champ vide, alors il me donne le message d'erreur à la fois le validateur. Si le prénom est vide, je veux seulement Non Null pour afficher les détails de l'erreur Si le prénom n'est pas vide alors j'ai été le RegEx pour être exécuté et s'il y a des caractères invalides alors je veux les arrêter.

Veuillez me guider ici

Merci!

+0

N'oubliez pas de marquer votre réponse préférée. – Steven

Répondre

0

Le validateur Not Null ne va pas le ramasser car la chaîne n'est pas nulle - c'est une chaîne vide. Jetez un oeil à cet article: http://geekswithblogs.net/michelotti/archive/2008/06/12/122836.aspx

+0

Je passe une valeur nulle/une chaîne vide à la propriété et les deux validateurs sont toujours exécutés. – amit

+0

Je ne suis pas sûr de vous suivre quand vous dites que vous "passez une valeur nulle/une chaîne vide" - vous ne pouvez * pas * transmettre * une valeur nulle et une chaîne vide en même temps - ce n'est pas possible. Vous dites que si vous passez * soit * la même chose arrive? Est-ce une application web? Si c'est le cas, vous ne passez pas de valeur nulle - vous passez une chaîne vide. Avez-vous absolument confirmé cela? –

0

Lorsque vous utilisez Enterprise Library 5.0, vous pouvez mélanger des attributs VAB et des attributs DataAnnotation (car VAB étend maintenant DataAnnotations). Lorsque vous décorez votre propriété comme suit, votre problème est résolu:

[System.ComponentModel.DataAnnotations.Required] 
[EnterpriseLibrary.Validation.Validators.RegexValidator("...")] 
public string LastName { get; set; } 
Questions connexes