Встроенные атрибуты, такие как [Required]
, назначают различные свойства для метаданных (см. Сообщение в блоге, которое я привел в конце моего ответа, чтобы узнать больше). Например:
public class MyViewModel
{
[Required]
public string Foo { get; set; }
}
присвоит:
@{
var isRequired = ViewData.ModelMetadata.IsRequired;
}
в соответствующем редакторе / шаблоне отображения.
А если у вас был собственный атрибут:
public class MyCustomStuffAttribute : Attribute, IMetadataAware
{
public void OnMetadataCreated(ModelMetadata metadata)
{
metadata.AdditionalValues["customStuff"] = "some very custom stuff";
}
}
и украшенная им модель вида:
public class MyViewModel
{
[MyCustomStuff]
public string Foo { get; set; }
}
в соответствующем шаблоне редактора / дисплея вы можете получить это:
@{
var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"];
}
Также вам следует прочитать серию сообщений Брэда Уилсона *1020* о том, что такое ModelMetadata и шаблоны в ASP.NET MVC и как их использовать.