¿Cuál es la diferencia entre DisplayNameatributo y Displayatributo en ASP.NET MVC?
c#
asp.net-mvc
data-annotations
displayattribute
.net-attributes
Ghooti Farangi
fuente
fuente

DisplayNameestablece losDisplayNamemetadatos en el modelo. Por ejemplo:y si usa en su opinión lo siguiente:
generaría:
Displayhace lo mismo, pero también le permite establecer otras propiedades de metadatos como Nombre, Descripción, ...Brad Wilson tiene una buena publicación de blog que cubre esos atributos.
fuente
Creo que las respuestas actuales no están resaltando las diferencias importantes y significativas reales y lo que eso significa para el uso previsto. Si bien ambos podrían funcionar en ciertas situaciones porque el implementador incorporó soporte para ambos, tienen diferentes escenarios de uso. Ambos pueden anotar propiedades y métodos, pero aquí hay algunas diferencias importantes:
DisplayAttribute
System.ComponentModel.DataAnnotationsespacio de nombres en elSystem.ComponentModel.DataAnnotations.dllensambladoDescriptionoShortNameDisplayNameAttribute
System.ComponentModelespacio de nombres enSystem.dllEl ensamblaje y el espacio de nombres hablan del uso previsto y el soporte de localización es lo mejor.
DisplayNameAttributeha existido desde .NET 2 y parece haber sido más destinado a nombrar componentes y propiedades de desarrollador en la cuadrícula de propiedades heredadas, no tanto para cosas visibles para los usuarios finales que pueden necesitar localización y demás.DisplayAttributese introdujo más tarde en .NET 4 y parece estar diseñado específicamente para etiquetar miembros de clases de datos que serán visibles para el usuario final, por lo que es más adecuado para DTO, entidades y otras cosas de ese tipo. Me parece bastante desafortunado que lo limiten, por lo que no se puede usar en las clases.EDITAR: Parece que la última fuente de .NET Core también permite
DisplayAttributeser utilizada en clases ahora.fuente
Quizás esto sea específico para .net core, descubrí que DisplayName no funcionaría, pero Display (Name = ...) sí. Esto puede salvar a alguien más la solución de problemas involucrada :)
fuente