Атрибут 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 "недопустим для этого типа объявления. Он действителен только для объявлений" свойство, индексатор, поле ""

Другие вопросы по тегам