Результат [DisplayName("foo")]
и [Display(Name="foo")]
для @Html.LabelFor(x => x.MyProperty)
тот же. оба генерируют <label for="MyProperty">foo</label>
. в чем преимущество DisplayName?
В чем преимущество атрибута DisplayName, чем атрибут Display?
Ответ 1
Атрибут Display
должен быть более предпочтительным по сравнению с атрибутом DisplayName
. Первый имеет форму DataAnnotations
namespace и предоставляет больше свойств, чем более поздний, т.е. ShortName, Prompt, GroupName, Order, Description, которые используются DataAnnotationsMetadataProvider
.
Самое главное, DisplayName
принимает только литералы, а Display
принимает тип и ключ ресурса, которые могут использоваться для предоставления переводов с использованием отдельных файлов ресурсов (resx).
Ответ 2
Нельзя сказать, что есть преимущество использования одного над другим. DisplayName
существует в более ранних версиях фреймворка, а Display
может использоваться только в ASP.NET MVC 3, как он был представлен в .NET 4.0.