В чем преимущество атрибута DisplayName, чем атрибут Display?

Результат [DisplayName("foo")] и [Display(Name="foo")] для @Html.LabelFor(x => x.MyProperty) тот же. оба генерируют <label for="MyProperty">foo</label>. в чем преимущество DisplayName?

Ответ 1

Атрибут

Display должен быть более предпочтительным по сравнению с атрибутом DisplayName. Первый имеет форму DataAnnotations namespace и предоставляет больше свойств, чем более поздний, т.е. ShortName, Prompt, GroupName, Order, Description, которые используются DataAnnotationsMetadataProvider.

Самое главное, DisplayName принимает только литералы, а Display принимает тип и ключ ресурса, которые могут использоваться для предоставления переводов с использованием отдельных файлов ресурсов (resx).

Ответ 2

Нельзя сказать, что есть преимущество использования одного над другим. DisplayName существует в более ранних версиях фреймворка, а Display может использоваться только в ASP.NET MVC 3, как он был представлен в .NET 4.0.