attribut displayname vs attribut d'affichage
Quelle est la différence entre DisplayName
attribut et Display
attribut dans ASP.NET MVC?
Vous devez vous connecter pour publier un commentaire.
Quelle est la différence entre DisplayName
attribut et Display
attribut dans ASP.NET MVC?
Vous devez vous connecter pour publier un commentaire.
Ils vous donnent les mêmes résultats, mais la principale différence que je vois, c'est que vous ne pouvez pas spécifier un
ResourceType
dansDisplayName
attribut. Pour un exemple en MVC 2, vous avez une classe de laDisplayName
attribut de fournir des ressources via la localisation.Display
attribut (nouveau dans MVC3 et .NET4) prend en chargeResourceType
surcharge comme un "out of the box" de la propriété.DisplayName
définit laDisplayName
dans le modèle de métadonnées. Par exemple:et si vous l'utilisez à votre avis, les suivants:
qu'elle génère:
Display
fait la même chose, mais vous permet également de définir d'autres propriétés de métadonnées comme le Nom, la Description, ...Brad Wilson a un nice post de blog couvrant ces attributs.
Je pense que le courant réponses sont en négligeant de mettre en évidence les réels important et significatif des différences et ce que cela signifie pour l'usage prévu. Alors qu'ils pourraient à la fois de travailler dans certaines situations, car le responsable de l'implémentation de prise en charge intégrée pour les deux, ils ont de différents scénarios d'utilisation. Les deux peuvent annoter des propriétés et des méthodes, mais voici quelques différences importantes:
DisplayAttribute
System.ComponentModel.DataAnnotations
espace de noms dans laSystem.ComponentModel.DataAnnotations.dll
assembléeDescription
ouShortName
DisplayNameAttribute
System.ComponentModel
espace de noms dansSystem.dll
L'assemblée et de l'espace de noms qui parle à l'usage prévu et le support de localisation est la grosse bosse.
DisplayNameAttribute
a été autour depuis .NET 2 et semble avoir été conçu plus pour le nommage des composants pour développeurs et des propriétés dans l'héritage des biens de la grille, pas tellement pour les choses visibles pour les utilisateurs finaux qui peuvent avoir besoin de la localisation et de ces.DisplayAttribute
a été introduit plus tard dans .NET 4 et semble être spécifiquement conçu pour l'étiquetage des membres de classes de données qui sera l'utilisateur final visible, de sorte qu'il est plus approprié pour les Dto, les entités, et d'autres choses de ce genre. Je trouve ça plutôt dommage qu'ils ont limité, il ne peut donc pas être utilisé sur les classes même si.EDIT: Ressemble à plus tard .NET de Base source permet
DisplayAttribute
pour être utilisé sur les classes ainsi.C'est peut-être spécifique .net de base, j'ai trouvé DisplayName ne fonctionnerait pas, mais l'Affichage de(Nom=...) n'. Cela peut sauver quelqu'un d'autre le dépannage impliqués 🙂