Когда я должен использовать Html.Displayfor в MVC - PullRequest
39 голосов
/ 27 февраля 2012

Я новичок в MVC и знаю, как использовать Html.Displayfor(), но я не знаю, когда его использовать?

Есть идеи?

Ответы [ 2 ]

67 голосов
/ 27 февраля 2012

Помощник DisplayFor отображает соответствующий шаблон отображения для данного типа.Вы должны использовать его, например, если вы хотите как-то персонализировать этот шаблон.Или со свойствами коллекции.При использовании со свойством коллекции соответствующий шаблон будет автоматически отображаться для каждого элемента коллекции.

Вот как это работает:

@Html.DisplayFor(x => x.SomeProperty)

отобразит шаблон по умолчанию для данного типа.Например, если вы украсили свойство модели представления некоторыми параметрами форматирования, оно будет учитывать следующие параметры:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime SomeProperty { get; set; }

, а когда, по вашему мнению, вы используете помощник DisplayFor, оно будет отображать свойство с учетом этого формата.тогда как, если вы использовали просто @Model.SomeProperty, это не будет соответствовать этому пользовательскому формату.

, но вы не знаете, когда его использовать?

Использовать его всегда, когда выхотите отобразить значение из вашей модели представления.Всегда используйте:

@Html.DisplayFor(x => x.SomeProperty)

вместо:

@Model.SomeProperty
6 голосов
/ 27 февраля 2012

Я расширяю @ ответ Дарина.

Html.DisplayFor(model => model.SomeCollection) будет перебирать элементы в SomeCollection и отображать элементы с помощью DisplayFor() рекурсивно.

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