为啥被删除:ASP.NET MVC CheckBoxList(没有 MVCContrib)
Posted
技术标签:
【中文标题】为啥被删除:ASP.NET MVC CheckBoxList(没有 MVCContrib)【英文标题】:Why is it removed: ASP.NET MVC CheckBoxList (without MVCContrib)为什么被删除:ASP.NET MVC CheckBoxList(没有 MVCContrib) 【发布时间】:2010-09-17 02:45:02 【问题描述】:为什么 CheckBoxList 从 ASP.NET MVC 预览版 5 中删除?
目前我看不到任何方法可以创建复选框列表(名称相似但 ID 不同),以便人们可以从列表中选择 0-1 多个选项。
在 MVCContrib 库中有一个 CheckBoxList
列表,但它已被弃用。对于其他 htmlHelpers,我可以理解这一点,但在预览版 5 中似乎没有替代 CheckBoxList
。
我想创建一个非常简单的列表,如下所示,但是使用 ASP.NET MVC 预览版 5 执行此操作的最佳方法是什么?
<INPUT TYPE="checkbox" NAME="Inhoud" VALUE="goed"> goed
<INPUT TYPE="checkbox" NAME="Inhoud" VALUE="redelijk"> redelijk
<INPUT TYPE="checkbox" NAME="Inhoud" VALUE="matig"> matig
<INPUT TYPE="checkbox" NAME="Inhoud" VALUE="slecht"> slecht
【问题讨论】:
对于最干净、无忧的解决方案,an answer to Stack Overflow question Maintain state of a dynamic list of checkboxes in ASP.NET MVC 效果很好。我也同意第一个答案,我不会碰Html.CheckBox
。它带来的问题多于解决的问题。
你可以使用这里的:awesome.codeplex.com
相关:Maintain state of a dynamic list of checkboxes in ASP.NET MVC
【参考方案1】:
视图中用于生成复选框的 for 循环
<% foreach(Inhoud i in ViewData["InhoudList"] as List<Inhoud>) %>
<input type="checkbox" name="Inhoud" value="<%= i.name %>" checked="checked" /> <%= i.name %>
<% %>
不要使用Html.Checkbox
,因为这会为列表中的每个项目生成两个值(因为它使用隐藏输入作为错误值)
【讨论】:
我收到错误,因为无法将 ViewData 转换为通用列表 (List)...为什么要这样做?【参考方案2】:我最近写了一篇关于在 MVC Beta 中实现 CheckBoxList 助手的博客。 Here is the link.
【讨论】:
【参考方案3】:我有自己的 CheckListBox 实现,它支持 ModelState。 如果您有兴趣,请联系 Un CheckBoxList que funciona en ASP.NET MVC。这篇文章是西班牙文的,但阅读代码应该不会有任何问题。
Jeremiah 解决方案的有趣之处在于您可以设置复选框的初始状态,而我的 CheckListBox 无法做到这一点。
【讨论】:
【参考方案4】:我建议使用上面发布的 JeremiahClark 扩展。 (CheckBoxList)
我的控制器产生了非常简单的指令。为了澄清,我添加了示例中不存在的代码片段。
var rolesList = new List<CheckBoxListInfo>();
foreach (var role in Roles.GetAllRoles())
rolesList.Add(new CheckBoxListInfo(role, role, Roles.IsUserInRole(user.UserName, role)));
ViewData["roles"] = listaRoles;
在视图中:
<div><%= Html.CheckBoxList("roles", ViewData["roles"]) %></div>
就是这样。
【讨论】:
以上是关于为啥被删除:ASP.NET MVC CheckBoxList(没有 MVCContrib)的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试使用 EF 在 ASP.NET MVC5 中查询视图时,为啥会收到错误“数据库 'ELITEPROD' 中的 CREATE TABLE 权限被拒绝”?
[Asp.net mvc]实体更新异常:存储区更新插入或删除语句影响到了意外的行数。实体在加载后可能被修改或删除。
ASP.NET-MVC5 - 为啥 Bootstrap v4 主题不能正确显示组件?