2010-05-06 6 views
0

Dans ma propriété, j'ai besoin d'une validation d'adresse e-mail. Mais [Datatype(DataType.EmailAddress)] ne fonctionnait pas. Comment rectifier la même chose.Attribution du type d'attribut

Répondre

0

Alors que vous n'êtes pas trop clair sur l'endroit où vous devez effectuer la validation, mais en supposant avait une classe comme ceci:

public class MyClass 
{ 
    [DataType(DataType.EmailAddress)] 
    public string EmailAddress { get; set; } 
} 

La validation de la propriété EmailAddress ne se produit pas sur le réglage de la propriété.

Cependant, vous pouvez déclencher la validation en utilisant les méthodes du Validator class:

// The instance. 
var myClass = new MyClass { EmailAddress = "[email protected]", }; 

// The context for validation. 
var context = new ValidationContext(myClass, null, null); 

// Validates the property. 
Validator.ValidateValue(myClass.EmailAddress, context, 
    new ValidationAttribute[] { new DataTypeAttribute(DataType.EmailAddress), }); 

Bien sûr, cela va à l'encontre du but de déclarer l'attribut sur la déclaration de classe. Vous pouvez valider l'état entier de classe comme ceci:

// Using same myClass and context declarations: 
Validator.ValidateObject(myClass, context); 

Si vous préférez ne pas try/catch Exception cas, vous pouvez utiliser les versions Try* des méthodes Validate à la place.

Questions connexes