DisplayFor()
используется для визуализации шаблона, соответствующего типу свойства.
Шаблоны отображения - это файлы .cshtml внутри папки / DisplayTemplates , которая, в свою очередь, находится внутри папки просмотра (то есть любой папки из Home, Shared или даже определенного контроллера).
Пример.
Если у вас есть String.cshtml шаблон, подобный этому, внутри / Views / Shared :
@model String
@if (string.IsNullOrEmpty(Model)) {
<span>(no string)</span>
}
else {
<span>@Model</span>
}
Каждый раз, когда вы вызываете DisplayFor()
для строкового свойства:
DisplayFor(model => model.MyStringProperty);
Отображает шаблон в соответствии со значением строки. Вы можете быть более конкретным и поместить / DisplayTemplates в определенную папку View, и шаблон влияет на их только вызовы из этих представлений.
<Ч />
В вашем случае вы можете быть еще более конкретным и позвонить DisplayFor()
с определенным шаблоном.
Предположим, у вас есть шаблон для определенного свойства, который называется MyPropertyTemplate.cshtml. Вы бы назвали DisplayFor()
так:
DisplayFor(model => model.MyProperty, "MyPropertyTemplate");
И они, внутри этого шаблона вы можете иметь любые атрибуты HTML, которые вы хотите.
@model MyProperty
<span class="orangetxt strongtxt">@MyProperty.ToString()</span>
<Ч />
PS: когда он не находит шаблон, я думаю, он вызывает только model.Property.ToString()
без дополнительного html.
К вашему сведению: EditorFor()
, например, работает аналогичным образом, но использует папку / EditorTemplates .