DisplayFor()
用于渲染与属性类型匹配的模板。
显示模板是/DisplayTemplates文件夹内的 .cshtml 文件,而该文件夹又位于视图文件夹内(即来自 Home、Shared 甚至特定控制器的任何文件夹)。
一个例子。
如果您在/Views/Shared中有这样的String.cshtml模板:
@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文件夹。