【问题标题】:Why is this CheckBox not checked?为什么这个 CheckBox 没有被选中?
【发布时间】:2018-01-28 06:29:43
【问题描述】:

我正在编写一个 MVC ASP.Net Core 网站,并且有一个复选框。我花了好几个小时认为我的绑定是错误的,因为我可以保存该值并将其放入数据库,但用户的视图总是显示一个未选中的复选框。我终于在 Chrome 开发工具中查看了呈现的 HTML 和这个复选框:

    <input data-val="true" data-val-required="The Show Profile Picture field is required." id="ShowProfilePic" name="ShowProfilePic" type="checkbox" value="true">

该值为真,就像它在数据库中一样,但在浏览器中,复选框未选中。它在 Model 和 ViewModel 中查看的值都是布尔值。有什么想法吗?

【问题讨论】:

  • 您应该为复选框使用checked 属性
  • ShowProfilePic 的值决定了它是否被选中。如果它的true(当您在 GET 方法中将模型传递给视图时),则复选框将被选中,否则不会。这就是模型绑定的工作原理(该方法根据属性的值添加checked 属性)

标签: checkbox asp.net-core-mvc


【解决方案1】:

在 ASP.NET 中,你应该通过 Checked 属性设置 Checkbox 控件,如:

checkBox.Checked = true;

然后应该在浏览器上将其呈现为选中状态。因此,您只需使用数据库中的布尔值来设置 Checked 属性。

【讨论】:

  • OK 我试过这个:@if (Model.ShowProfilePic) {&lt;input type="checkbox" asp-for="ShowProfilePic" class="form-inline LeftPadCheckBox" checked="checked" /&gt;} else {&lt;input type="checkbox" asp-for="ShowProfilePic" class="form-inline LeftPadCheckBox" /&gt;} &lt;label asp-for="ShowProfilePic"&gt;&lt;/label&gt; 出于某种原因,@Model.ShowProfilePic 会返回为 False,即使我正在查看数据库并且它绝对是真的(值为 1)。跨度>
  • 检查了我的控制器,没有在模型上设置属性。该死的浪费了这么多时间。
  • 这是网页表单代码,与asp.net-core-mvc无关
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 2017-02-20
  • 2016-08-09
相关资源
最近更新 更多