Подтвердить что ты не робот

Атрибут UIHint в MVC

Что такое использование атрибута UIHint в MVC. Может кто-нибудь, пожалуйста, предоставит мне простой пример того, как его использовать и что он делает.

4b9b3361

Ответ 1

При использовании шаблона Display или Editor UIHint сообщит, какой шаблон использовать:

[UIHint("SomeTemplate")]
public class MyViewModel
{
     public string SomeProperty { get; set; }
}

Если вы создадите шаблон отображения SomeTemplate.ascx(поскольку вы являетесь MVC2) в представлениях /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; }
}

Вы можете создать шаблон отображения/редактора с именем День рождения в папке DisplayTemplates или EditorTemplates в /Views/Shared или/Views/{Controller}. Затем, когда вы выполните:

@Html.DisplayFor(m => m.DateOfBirth)

или

@Html.EditorFor(m => m.DateOfBirth)

Он будет использовать шаблон, указанный в UIHint

Ответ 2

UIHint может использоваться только для свойства, а не для объявления класса как состояния Dismissile. Я использую MVC3, поэтому это может измениться с MVC2.

"Атрибут 'UIHint' недействителен для этого типа объявления. Он действителен только для объявлений 'property, indexer, field'