我正在查看新的asp.net核心帐户视图页面的login.cshtml页面,我注意到使用DisplayNameFor输出字段的名称(" RememberMe")。为什么不足以满足这一要求?看来标签没有参与。
<div class="checkbox">
<label asp-for="RememberMe">
<input asp-for="RememberMe" />
@Html.DisplayNameFor(m => m.RememberMe)
</label>
</div>
由于输入和标签都是Tag Helpers,因此不应该像在同一页面上的电子邮件和其他输入标签一样自动呈现名称吗?
答案 0 :(得分:2)
非常有趣的问题。
根据MVC code,labeltaghelper
优先考虑可用的子内容。只有当没有儿童内容可用时,它才会输入默认标签文本(订单和可能的值per)
如果删除标签的所有子元素,您会注意到标签实际上会使用显示名称或属性名称(记住我)
就我个人而言,我认为在模板中,使用@Html.DisplayNameFor(m => m.RememberMe)
只是一个设计决定,因此它适用于bootstrap。
更新:这会显示相同的信息,但格式不会那么好
<div class="checkbox">
<input asp-for="RememberMe" />
<label asp-for="RememberMe">
</label>
</div>