【问题标题】:Why does ASP.NET Core Tag Helper for Boolean Checkbox Not Display Label?为什么布尔复选框的 ASP.NET Core Tag Helper 不显示标签?
【发布时间】:2017-09-24 12:27:15
【问题描述】:

我正在查看一个新的 asp.net 核心帐户视图页面的 login.cshtml 页面,我注意到使用 DisplayNameFor 来输出字段的名称(“RememberMe”)。为什么这还不够?好像厂牌没有参与。

<div class="checkbox">
 <label asp-for="RememberMe">
    <input asp-for="RememberMe" />
    @Html.DisplayNameFor(m => m.RememberMe)
 </label>
</div>

既然 input 和 label 都是 Tag Helpers,那么名称不应该像电子邮件和同一页面上的其他输入标签一样自动呈现吗?

【问题讨论】:

标签: asp.net-mvc asp.net-core


【解决方案1】:

非常有趣的问题。

根据 MVC codelabeltaghelper 优先于可用的子内容。只有当没有子内容可用时才会放入默认标签文本(顺序和可能的值per

如果您删除标签的所有子元素,您会注意到标签实际上将使用显示名称或属性名称(记住我)

就个人而言,我认为在模板中,使用@Html.DisplayNameFor(m =&gt; m.RememberMe) 只是一个设计决定,以便它与引导程序配合得很好。

更新:这将显示相​​同的信息,但格式不会那么好

<div class="checkbox">
<input asp-for="RememberMe" />
 <label asp-for="RememberMe">
 </label>
</div>

【讨论】:

  • 当我删除“@Html.DisplayNameFor(m => m.RememberMe)”时,没有“记住我”出现。页面上显示“记住我”的 cshtml 文件会是什么样子。
  • @PeterKellner 更新了答案以显示一个简单的示例。希望对您有所帮助。
猜你喜欢
  • 2015-02-05
  • 2016-04-10
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2012-01-07
相关资源
最近更新 更多