Checkbox 为什么不选中此复选框?

Checkbox 为什么不选中此复选框?,checkbox,asp.net-core-mvc,Checkbox,Asp.net Core Mvc,我正在写一个MVC ASP.Net核心网站,我有一个复选框。我花了好几个小时思考我的绑定有点错误,因为我可以保存值并将其放入数据库,但是用户的视图总是显示一个未选中的复选框。最后,我查看了Chrome开发工具中呈现的HTML,并选中了以下复选框: <input data-val="true" data-val-required="The Show Profile Picture field is required." id="ShowProfilePic" name="ShowPr

我正在写一个MVC ASP.Net核心网站,我有一个复选框。我花了好几个小时思考我的绑定有点错误,因为我可以保存值并将其放入数据库,但是用户的视图总是显示一个未选中的复选框。最后,我查看了Chrome开发工具中呈现的HTML,并选中了以下复选框:

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


该值与数据库中的值相同,但在浏览器中,该复选框未选中。它在模型和ViewModel中看到的值都是布尔值。有什么想法吗?

在ASP.NET中,您应该通过
Checked
属性设置复选框控件,如下所示:

checkBox.Checked = true;

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

您应该为复选框使用
Checked
属性它是
ShowProfilePic
的值,用于确定是否选中它。如果其
为true
(当您在GET方法中将模型传递给视图时),则复选框将被选中,否则它不会被选中。这就是模型绑定的工作方式(该方法根据属性的值添加
checked
属性)好的,我尝试了这个:
@if(model.ShowProfilePic){}else{}
出于某种原因,@Model.ShowProfilePic返回为False,尽管我正在查看数据库,它肯定是真的(值为1)。检查了我的控制器,但没有在模型上设置属性。该死的浪费了这么多时间。这是web表单代码,与asp.net-core-mvc无关