【问题标题】:Checkbox turns into text input ASP.NET Core复选框变成文本输入 ASP.NET Core
【发布时间】:2017-01-07 04:47:39
【问题描述】:

我试图在 ASP.NET Core cshtml 页面上创建两个复选框,如下所示:

    <div class="checkbox">
        <input asp-for="IsDesktop" />
        <label asp-for="IsDesktop">Desktop page</label>
    </div>

    <div class="checkbox">
        <input asp-for="IsPhone" />
        <label asp-for="IsPhone">Phone page</label>
    </div>

此代码产生两种不同的结果! One type="text", and one type="checkbox" (see picture)

两个数据库列都是“位”类型(1 或 0 表示真或假)。

是什么让这些输入之一变成了文本输入?

【问题讨论】:

  • 您说的是无关紧要的数据库列,您应该显示您的模型以及这些属性在您的模型上具有什么类型。其中一个很可能是 int 而不是 bool 所以它得到文本而不是复选框
  • 有趣。我的模型是通过脚手架从预先存在的数据库自动创建的,所以我相信数据库类型很重要。不过很好的提示。自动生成模型的区别是“布尔?”与“布尔”

标签: c# asp.net forms checkbox asp.net-core


【解决方案1】:

asp-for 属性将标签与模型相关联,这有助于 asp.net 推断要使用的 html 输入类型。

http://www.davepaquette.com/archive/2015/05/13/mvc6-input-tag-helper-deep-dive.aspx

【讨论】:

    【解决方案2】:

    回答:从 Joe Audette 的评论中,我发现模型将一种数据类型显示为“bool?”另一个是“布尔”。

    为了使这两个都成为复选框,我必须使数据库中的列可以为空并重新生成我的模型,以使它们“布尔?”。

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2021-05-23
      • 2021-02-16
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多