Я ломал голову над использованием класса MetadataType / buddy, чтобы атрибуты DisplayName / Display работали с моими классами Entity Framework в MVC3.На мой взгляд, если я использую @ Html.LabelFor, я все равно просто получаю имя свойства, а не атрибут display.Мой сценарий использования и настройки очень прост:
[MetadataType(typeof(ProductMetadata))]
public partial class Product
{
}
public class ProductMetadata
{
[Display(Name = "Why does this not work????")]
object ProductName { get; set; }
[Display(Name = "Discontinued Date")]
object DiscontinuedDate { get; set; }
}
Если я затем использую Html-помощник, такой как LabelFor:
@Html.LabelFor(m => m.First().ProductName)
, я все равно просто получаю имя свойства в своем выводе.Даже если я сделаю это программным способом в пользовательском расширении HTML, я просто получу имя свойства, а не значение расширенного атрибута:
ModelMetadata.FromLambdaExpression(expression, html.ViewData).DisplayName
Буду признателен за любые идеи или помощь по этому вопросу.Я что-то упускаю здесь?