ASP .Net MVC,复选框问题!

Posted

技术标签:

【中文标题】ASP .Net MVC,复选框问题!【英文标题】:ASP .Net MVC, problem with checkboxes! 【发布时间】:2010-11-13 23:48:38 【问题描述】:

基本上我有一组从视图数据动态创建的复选框,如下所示:

<input type="checkbox" name="Calendars" value="<%= c.ID %>" /><%= c.Name %>

值是日历 ID。

我可以使用 FormsCollection 获取已恢复的复选框,虽然它很乱,但它可以工作!

(复选框助手似乎也有一个错误,它在复选框旁边呈现一个隐藏字段,这意味着 true 实际上返回为“true,false”!我可以解决这个问题,所以这不是问题,只是认为 Id提一下)

当尝试在编辑页面上连接复选框时出现问题!

我有一个可以有多个日历的日程表类,我想通过在编辑中检查日程表来显示日程表有哪些日历!

我的视图是强类型的,但 MVC 魔法无法映射它!

关于什么是最好的方法有什么想法吗??

我曾尝试在 ViewData 中传递日历 ID,并执行一些内联​​代码来检查相应的复选框,但这变得一团糟!

谢谢!!

更新:

完成了

s.ID == c.ID).Select(s => s).Count() > 0) ? “检查=检查”:“”%>

【问题讨论】:

【参考方案1】:

您需要为每个复选框手动添加“选中”标签:

<input type="checkbox" name="Calendars" value="<%= c.ID %>" checked="checked" /><%= c.Name %>

【讨论】:

谢谢!我把它复杂化了!【参考方案2】:

您不需要&lt;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) %>

【讨论】:

以上是关于ASP .Net MVC,复选框问题!的主要内容,如果未能解决你的问题,请参考以下文章

单击复选框时 ASP.NET MVC 提交表单

如何在 Asp.NET MVC 中使用复选框创建多选下拉菜单

为啥复选框选择列表总是在 ASP.NET MVC-5 中发布为 null [重复]

如何在我的 ASP.NET MVC 应用程序中实现“全选”复选框?

如何使用 DataAnnotations 处理 ASP.NET MVC 2 中的布尔值/复选框?

asp.net mvc视图中的C#复选框事件不在表单内