Qual é a diferença entre DisplayName
atributo e Display
atributo no ASP.NET MVC?
c#
asp.net-mvc
data-annotations
displayattribute
.net-attributes
Ghooti Farangi
fonte
fonte
DisplayName
define osDisplayName
metadados no modelo. Por exemplo:e se você usar em sua exibição o seguinte:
isso geraria:
Display
faz o mesmo, mas também permite definir outras propriedades de metadados, como Nome, Descrição, ...Brad Wilson tem um bom post sobre esses atributos.
fonte
Penso que as respostas atuais estão negligenciando para destacar as diferenças importantes e significativas e o que isso significa para o uso pretendido. Embora eles possam funcionar em determinadas situações porque o implementador criou suporte para ambos, eles têm diferentes cenários de uso. Ambos podem anotar propriedades e métodos, mas aqui estão algumas diferenças importantes:
DisplayAttribute
System.ComponentModel.DataAnnotations
espaço para nome naSystem.ComponentModel.DataAnnotations.dll
montagemDescription
ouShortName
DisplayNameAttribute
System.ComponentModel
espaço para nome emSystem.dll
O assembly e o namespace falam sobre o uso pretendido e o suporte à localização é o grande incentivo.
DisplayNameAttribute
existe desde o .NET 2 e parece ter se dedicado mais à nomeação de componentes e propriedades de desenvolvedor na grade de propriedades herdadas, não tanto para itens visíveis para os usuários finais que podem precisar de localização e outras coisas.DisplayAttribute
foi introduzido posteriormente no .NET 4 e parece ter sido projetado especificamente para rotular membros de classes de dados que serão visíveis ao usuário final, portanto, é mais adequado para DTOs, entidades e outras coisas desse tipo. Eu acho bastante lamentável que eles tenham limitado, então ele não pode ser usado nas aulas.EDIT: Parece que a fonte mais recente do .NET Core também
DisplayAttribute
pode ser usada em classes agora.fonte
Talvez isso seja específico do núcleo .net, achei que DisplayName não funcionaria, mas Display (Name = ...) funciona. Isso pode salvar outra pessoa da solução de problemas envolvida :)
fonte