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】:您不需要<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-5 中发布为 null [重复]
如何在我的 ASP.NET MVC 应用程序中实现“全选”复选框?