В чем разница между DisplayName
атрибутом и Display
атрибутом в ASP.NET MVC?
c#
asp.net-mvc
data-annotations
displayattribute
.net-attributes
Гхути Фаранги
источник
источник
DisplayName
устанавливаетDisplayName
в метаданных модели. Например:и если вы используете в своем представлении следующее:
это сгенерирует:
Display
делает то же самое, но также позволяет вам устанавливать другие свойства метаданных, такие как Имя, Описание, ...У Брэда Уилсона есть хорошая запись в блоге, посвященная этим атрибутам.
источник
Я думаю, что в текущих ответах не уделяется внимания фактическим важным и значительным различиям и тому, что это означает для предполагаемого использования. Хотя оба они могут работать в определенных ситуациях, поскольку разработчик встроил поддержку обоих, у них разные сценарии использования. Оба могут аннотировать свойства и методы, но есть несколько важных отличий:
DisplayAttribute
System.ComponentModel.DataAnnotations
пространстве имен вSystem.ComponentModel.DataAnnotations.dll
сборкеDescription
илиShortName
DisplayNameAttribute
System.ComponentModel
пространстве имен вSystem.dll
Сборка и пространство имен говорят о предполагаемом использовании, а поддержка локализации - большой удар.
DisplayNameAttribute
существует с .NET 2 и, похоже, был предназначен больше для именования компонентов и свойств разработчика в устаревшей сетке свойств, а не столько для вещей, видимых конечным пользователям, которые могут нуждаться в локализации и т.DisplayAttribute
был представлен позже в .NET 4 и, по-видимому, разработан специально для маркировки членов классов данных, которые будут видны конечному пользователю, поэтому он больше подходит для DTO, сущностей и других подобных вещей. Мне очень жаль, что они ограничили его, поэтому его нельзя использовать в классах.РЕДАКТИРОВАТЬ: похоже, что последний исходный код .NET Core
DisplayAttribute
теперь также можно использовать в классах.источник
Возможно, это характерно для ядра .net, я обнаружил, что DisplayName не работает, а Display (Name = ...) работает. Это может спасти кого-то еще от устранения неполадок :)
источник