Мне известно, что в пользовательском шаблоне отображения или редактора я могу получить метаданные о модели через ViewData.ModelMetadata
, у которого есть свойства, которые указывают, были ли определенные атрибуты метаданных для свойства, такие как IsRequired
, DisplayName
, и так далее. Но можно ли в любом случае получить доступ к пользовательским метаданным, которые я добавил к свойству, через пользовательские атрибуты?
Например, скажем, на мой взгляд, у меня есть такое свойство:
[UIHint("Whizbang")]
[SomeAttribute("foobar")]
public string LeftWhizbang { get; set; }
И у меня есть пользовательский шаблон отображения с именем Whizbang.cshtml
со следующим содержимым:
@model string
Left Whizbang Value: @Model
То, что я хотел бы сделать, - это определить, украшено ли свойство LeftWhizbang
атрибутом SomeAttribute
и, если да, я хотел бы получить доступ к свойству Message
атрибута (скажем), а именно значение "foobar".
Я хотел бы иметь возможность сделать что-то подобное в моем шаблоне:
@model string
Left Whizbang Value: @Model
@{
SomeAttributeAttribute attr = ViewData.ModelMetadata.GetAttributes(...);
if (attr != null)
{
<text>... and the value is @attr.Message</text>
}
}
Это вообще возможно, или я заглядываю в тупик?