基本上我有一组复选框,这些复选框是从视图数据中动态创建的,如下所示:
<input type="checkbox" name="Calendars" value="<%= c.ID %>" /><%= c.Name %>
该值为日历ID。
我可以使用FormsCollection来获取复选框,但是它有效!
(复选框帮助器似乎还有一个错误,它会在复选框旁边显示一个隐藏字段,这意味着true实际上会返回为“true,false”!我可以解决这个问题,因此它不是一个问题,只是想到了ID提到它)
尝试在编辑页面上勾选复选框时出现问题!
我有一个可以有多个日历的日程安排课程,我希望通过在编辑中查看日程表来显示日程安排的日历!
我的视图是强类型的,但MVC魔法无法映射这个!
有什么想法是最好的方法吗?
我曾尝试在ViewData中传递日历ID并执行一些内联代码来检查相应的复选框,但这会变得混乱!
谢谢!
更新:
完成此
s.ID == c.ID)。选择(s =&gt; s).Count()&gt; 0)? “checked = checked”:“”%&gt;答案 0 :(得分:3)
您需要手动将“已选中”标记添加到每个复选框:
<input type="checkbox" name="Calendars" value="<%= c.ID %>" checked="checked" /><%= c.Name %>
答案 1 :(得分:2)
您不需要<input type="checkbox"
- 使用Html.Checkbox()
。它在复选框旁边呈现一个隐藏字段 - 但它不是一个错误。从ASP.NET MVC源代码,InputExtensions.cs,第201行:
// Render an additional <input type="hidden".../> for checkboxes. This
// addresses scenarios where unchecked checkboxes are not sent in the request.
// Sending a hidden input makes it possible to know that the checkbox was present
// on the page when the request was submitted.
使用此:
<%= Html.CheckBox("Calendars", c.ID) %>