2009-08-07 6 views
6

Quelqu'un at-il un exemple de classes d'amis dans ASP.NET MVC 2 Preview 1? Je ne peux pas trouver quelque chose sur le MSDN à ce sujet mais selon ScottGu ils ont ajouté des fonctionnalités pour cela dans la version la plus récente.ASP.NET MVC V2 - Classes d'amis

Répondre

10

Je crois que ce que vous cherchez est MetadataTypeAttribute. Ce n'est pas quelque chose qui est spécifique à MVC mais une partie de l'espace de noms DataAnnotations introduit en 3.5. Il vous permet de décorer les membres d'une classe partielle externe à la classe elle-même. Par exemple, si vous aviez un type de classe partielle généré nommé Customer et que vous vouliez y ajouter des attributs, vous pouvez créer un nouveau partiel dans le même espace de nom et l'étiqueter avec le MetadataType. Créez ensuite la classe Métadonnées avec les attributs correspondants et décorez-les.

/* Generated class */ 
public partial class Customer 
{ 
    public string Name { get; set; } 
} 


/* MetadataType decorated class */ 
[MetadataType(CustomerMetadata)] 
public partial class Customer 
{ /* ... */ } 


/* Metadata type */ 
public class CustomerMetadata 
{ 
    [Required(ErrorMessage = "Name is required")] 
    public string Name { get; set; } 
} 
+0

Merci beaucoup! C'est exactement ce dont j'avais besoin. :) –

+0

Quel est le point de séparer les classes? – UpTheCreek

+1

Ce n'est pas tellement un "point" que c'est une solution de contournement laide pour gérer les classes générées automatiquement à partir de EF ou LINQ2SQL. Parce que les fichiers de classe sont générés, il n'y a aucun moyen d'appliquer des attributs aux propriétés, donc une alternative hacky a été créée. –

Questions connexes