2010-03-23 5 views
1

Actuellement, j'ai un objet DataModel qui contient mes classes linq to sql (un fichier dmbl). Actuellement, j'utilise une classe partielle pour valider l'entrée entrante. Par exempleValidation ASP.NET MVC 2 LINQ to SQL

public partial class User : IEntity 
{ 

    public NameValueCollection CheckModel() 
    { 
     return GetRuleViolations(); 
    } 

    /// <summary> 
    /// Method validates incoming data, by given rules in the if statement. 
    /// </summary> 
    /// <returns>NameValueCollection</returns> 
    private NameValueCollection GetRuleViolations() 
    { 
     NameValueCollection errors = new NameValueCollection(); 
     if (string.IsNullOrEmpty(Username)) 
      errors.Add("Username", "A username is required"); 
     // and so on 
     return errors; 
    } 

} 

Maintenant ce que je veux essayer de faire est d'ajouter des attributs de validation dans les champs. Par exemple, je veux essayer d'ajouter l'attribut requis au champ Nom d'utilisateur à la place/en plus de l'utilisation de la validation que j'ai actuellement. Ma question est de savoir comment puis-je y parvenir car le fichier dmbl est généré automatiquement. Ou peut-être que ce n'est pas possible et devrais-je utiliser une approche différente?

+0

Vous devrez générer vos propres classes L2S. Recherchez les modèles T4. – leppie

Répondre

2

Vous devriez lire à propos des classes de métadonnées. C'est l'exemple blog entry à ce sujet.

Ajout Required attribuiez à User classe sera quelque chose comme:

[MetadataType(typeof(UserMetadata))] 
public partial class User 
{ 
} 

public class UserMetadata 
{ 
    [Required] 
    public string Username { get; set; } 
} 
+0

Ok je vais regarder dans cela merci – Chino

+0

Vous pouvez également trouver les liens suivants intéressants: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model- validation.aspx et http://msdn.microsoft.com/en-us/library/ee256141%28VS.100%29.aspx DataAnnotations est le mot-clé dans cette situation. ASP.Net MVC 2 prend même en charge la validation côté client pour ce type de validation. –