看来,如果您只使用Html.DisplayFor(model => model)
没有模板的详细信息视图,则生成的标记将如下所示:
<div class="display-label">first name</div>
<div class="display-field">Dan</div>
<div class="display-label">last name</div>
<div class="display-field">M</div>
<div class="display-label">email</div>
<div class="display-field">danm@fakedomain.com</div>
这具有相当程度的灵活性。display-label
如果你为and创建 CSS 类display-field
,你可以做很多事情,但是如果我想把它改成这样呢?
<p>
<span class="display-label">first name</span>:
<span class="display-field">Dan</span>
</p>
<p>
<span class="display-label">last name</span>:
<span class="display-field">M</span>
</p>
<p>
<span class="display-label">email</span>:
<span class="display-field">danm@fakedomain.com</span>
</p>
请注意,现在属性值对现在并排显示(而不是在单独的行上),并且每个属性后面都有一个冒号。
有没有什么方法可以创建一个自定义模板,当详细信息视图搭建时,该模板将为每个属性值对重复?
我不是在谈论模型的特定模板(例如,Person
模板)或特定属性的模板(例如,EmailAddress
模板)。我想要一些可以让我描述属性值对外观的东西,然后DispalyFor()
应该为我的模型或视图模型中的每个属性自动重复该模板。