2010-02-25 2 views
1

J'ai un champ, Adresse2, qui est facultatif. Ainsi, si elle est nulle, aucune règle de validation ne s'applique. Cependant, si une valeur existe, sa longueur ne peut pas dépasser 255 caractères.Syntaxe de validation EntLib pour les règles de champ facultatives?

J'ai été jouer avec:

<StringLengthValidator(0, RangeBoundaryType.Inclusive, 255, RangeBoundaryType.Inclusive, MessageTemplate:="Address 2 can be between 0 and 255 characters in length.", Ruleset:="MyRules")> _ 

Mais si ce n'est pas présent, je reçois encore une erreur.

Des suggestions?

Merci.

Répondre

2

Les attributs suivants exigent que la longueur de chaîne soit entre 5 et 255 caractères si une valeur est spécifiée (y compris une chaîne vide) ou que la chaîne est nul.

<ValidatorComposition(CompositionType.Or, Ruleset:="MyRules", MessageTemplate:="Address line 2 must be between 5 and 255 characters")> _ 
<StringLengthValidator(5, 255, Ruleset:="MyRules")> _ 
<NotNullValidator(Negated:=True, Ruleset:="MyRules")> _ 
Public Property Address2() As String 


donc toutes les chaînes Adresse2 doit être comprise entre 5 et 255 caractères, sauf si Address2 est nulle.

0

Vous devez décorer la propriété avec un IgnoreNullsAttribute:

<IgnoreNulls> 
<StringLengthValidator(0, RangeBoundaryType.Inclusive, ...)> 
public string Address2 { get; set; } 
+0

Toujours pas aller sur celui-là. Si Address2 n'est pas null (ou vide), la longueur doit être comprise entre 5 et 255 caractères, ce que je connais, mais pas la syntaxe de propriété appropriée, car IgnoreNulls ne fonctionne pas. J'ai trouvé une discussion ici: http://www.codeplex.com/entlib/WorkItem/View.aspx?WorkItemId=8595 suggérant IgnoreNullsOrEmpty. – ElHaix

Questions connexes