Атрибут UIHint в MVC
Что такое использование атрибута UIHint в MVC . Может ли кто-нибудь дать мне простой пример того, как его использовать и что он делает.
2 ответа
При использовании шаблона Display или Editor UIHint сообщит ему, какой шаблон использовать:
[UIHint("SomeTemplate")]
public class MyViewModel
{
public string SomeProperty { get; set; }
}
Если вы создадите шаблон отображения с именем SomeTemplate.ascx (поскольку вы являетесь MVC2) в Views/Shared/DisplayTemplates или Views/{Controller}/DisplayTemplates, он будет использовать этот шаблон, когда вы это сделаете:
@Html.DisplayForModel() // if Model is MyViewModel
или же
@Html.DisplayFor(m => m.ModelProperty) // if ModelProperty is of type MyViewModel
редактировать
Если вы хотите указать это на уровне свойства:
public class MyViewModel
{
[UIHint("Birthday")]
public DateTime DateOfBirth { get; set; }
}
Вы можете создать шаблон отображения / редактора с именем Birthday в папке DisplayTemplates или EditorTemplates в /Views/Shared или /Views/{Controller}. Затем, когда вы делаете:
@Html.DisplayFor(m => m.DateOfBirth)
или же
@Html.EditorFor(m => m.DateOfBirth)
Он будет использовать шаблон, указанный в UIHint
UIHint может использоваться только для свойства, которое не указано в объявлении класса, как указано в Dismissile. Я использую MVC3, так что это может измениться с MVC2.
"Атрибут" UIHint "недопустим для этого типа объявления. Он действителен только для объявлений" свойство, индексатор, поле ""