2010-10-19 4 views
1

J'ai un viewmodel qui ressemble en partie comme ça ...validation de données personnalisées Annotations - ASP.NET C# MVC2

 [Required] 
     public int Year { get; set; } 

     [Required] 
     [Range(1, 5000000)] 
     public int ModelID { get; set; } 

     [Required] 
     public int ZipCode{ get; set;} 

Je veux ajouter un attribut validateur personnalisé qui vérifie une base de données pour vous assurer que la fermeture éclair est valide. Quelque chose comme ...

 [Required] 
     [IsValidZipcode] 
     public int ZipCode{ get; set;} 

Je n'ai pas été en mesure de trouver un tutoriel sur le net - Je ne pense pas que je sais ce qu'il faut chercher parce que cela semble que ce serait commun.

Comment dois-je procéder?

Répondre

4

Il suffit de créer une classe qui hérite de la classe ValidationAttribute, ovveriding la méthode IsValid:

public class IsValidZipCode: ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     return db.ValidateSomething(value); 
    } 
} 

alors vous êtes bon pour aller:

[IsValidZipCode(ErrorMessage = "Not a valid zip code!")] 
public int ZipCode { get; set; } 
+0

Super merci! – Jason

3

Vous étendez ValidationAttribute comme indiqué dans this article. ValidationAttribute a une méthode IsValid() que vous pouvez remplacer pour indiquer la validité du modèle.

+0

+1 à vous pour ne pas obtenir un vote , même si tu m'as battu de 30 secondes. :) – RPM1984

+0

Hehe, merci. Votre réponse était meilleure - les gens n'aiment pas lire: D – Alex

+0

Je n'ai pas remarqué que vous étiez le premier. Mais oui ... Copier + Coller est beaucoup plus facile. +1 – Jason

Questions connexes