Атрибут UIHint в MVC - PullRequest
       4

Атрибут UIHint в MVC

23 голосов
/ 09 ноября 2011

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

Ответы [ 2 ]

36 голосов
/ 09 ноября 2011

При использовании шаблона отображения или редактора 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

edit
ЕслиВы хотите указать это на уровне свойства:

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

16 голосов
/ 04 января 2013

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...