asp.net-mvc - 为什么 bool 复选框的 ASP.NET Core 标记帮助程序不显示标签?

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

我正在查看新的 asp.net core 帐户 View 页面的 login.cshtml 页面,我注意到使用 DisplayNameFor 输出字段的名称(“RememberMe”)。为什么这还不够?该厂牌似乎没有参与。

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

由于输入和标签都是标记帮助程序,因此名称不应该像同一页面上的电子邮件和其他输入标记一样自动呈现吗?

最佳答案

非常有趣的问题。

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

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

就我个人而言,我认为在模板中,使用@Html.DisplayNameFor(m => m.RememberMe)只是一个设计决策,以便与 Bootstrap 很好地配合。

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

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

关于asp.net-mvc - 为什么 bool 复选框的 ASP.NET Core 标记帮助程序不显示标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645417/

相关文章:

c# - 注销后重定向在 Asp.net Core 2 中不起作用

asp.net - 有没有办法动态包装/拦截 HtmlHelper 扩展方法。认为装饰器模式

asp.net - CS0234 : Missing Assembly Reference

docker - DownGrade ASP Core Docker支持的项目

docker - 将 ASP.NET 5 项目发布到 Docker 时找不到名称为 "Custom"的 AspnetPublishHandler

c# - 如何在 .net 核心中获取 HttpRequest 主体?

c# - 通过 ASP.NET MVC Action Filter 修改表单值

html - 在 ASP.NET MVC5 中拉伸(stretch)表单中的文本框

c# - 如何在N层应用中实现IDependencyResolver?

c# - 在 Startup.cs 中生成角色在 .NET Core 2.0 中不再起作用