【发布时间】:2014-12-21 20:40:00
【问题描述】:
在我的 MVC 视图中,我有一个动态创建的复选框列表。
@foreach (var door in Model.Doors)
{
<input type="checkbox" id="@door.ID" name="DoorIds" value="door.ID"/>@Html.Label(door.DoorName);
}
我的模型 -
public virtual IList<int> assignedDoors { get; set; }
public int[] DoorIds { get; set; }
当我勾选一些复选框并按保存时,更改将提交到数据库。但是,我似乎不知道如何在页面加载时选中所需的框?
如果我将下面的代码放在 HTML 复选框行中,
checked="@Model.assignedDoors.Contains(@door.ID)" }
复选框被选中,但是当我按下保存时,我收到以下错误 -
值 'door.ID,door.ID' 对 DoorId 无效。
任何想法我哪里出错了?
【问题讨论】:
-
你需要在door.ID前加上@,所以应该是value="@door.ID"
-
完美,效果很好
-
checked="@Model.assignedDoors.Contains(@door.ID)"使复选框被选中,无论door.ID的值是什么(及其无效的html)。请参阅 Omu 的解决方案。
标签: asp.net-mvc razor checkbox