Я новичок в MVC и знаю, как использовать Html.Displayfor(), но я не знаю, когда его использовать?
Любая идея?
Ответ 1
Помощник 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
Ответ 2
Я расширяю ответ @Darin.
Html.DisplayFor(model => model.SomeCollection) будет перебирать элементы в SomeCollection и отображать элементы, используя DisplayFor() рекурсивно.