ASP.NET Core 7 MVC中复选框值无法回传至控制器问题排查
问题原因及解决方法
你的问题出在复选框的value=""设置上,ASP.NET Core模型绑定无法将空字符串转换为bool类型,导致选中状态无法正确回传。以下是两种解决方式:
方式一:移除手动设置的空value属性
直接去掉value="",让asp-for标签助手自动生成正确的value值(默认是"true"),这样选中时表单会提交true,能被正确绑定到IsSelected字段:
<td> <input asp-for="@Model.PeopleToChooseFrom[i].IsSelected" type="checkbox" /> </td>
方式二:添加对应隐藏字段处理未选中情况
如果需要确保无论复选框是否选中,都能提交对应值,可以为每个复选框添加一个隐藏字段,未选中时提交false,选中时复选框的true会覆盖隐藏字段的值:
<td> <input asp-for="@Model.PeopleToChooseFrom[i].IsSelected" type="checkbox" /> <input asp-for="@Model.PeopleToChooseFrom[i].IsSelected" type="hidden" value="false" /> </td>
另外注意你视图中的隐藏字段代码有语法错误:<input asp-for="@Model.PeopleToChooseFrom[i].Id" type="hidden" .>,末尾的.需要删除,修正为:
<input asp-for="@Model.PeopleToChooseFrom[i].Id" type="hidden" />
内容的提问来源于stack exchange,提问作者Currie Dail
相关产品推荐
相关产品推荐

