Why is it removed: ASP.NET MVC CheckBoxList (without MVCContrib)

女生的网名这么多〃 提交于 2019-12-03 06:57:46

问题


Why is the CheckBoxList removed from ASP.NET MVC preview release 5?

Currently I don't see any way in which I can create a list of checkboxes (with similar names but different id's) so people can select 0-1-more options from the list.

There is an CheckBoxList list present in the MVCContrib library, but it is deprecated. I can understand this for the other HtmlHelpers, but there does not seem to be a replacement for the CheckBoxList in preview 5.

I would like to create a very simple list like you see below, but what is the best way to do this using ASP.NET MVC preview release 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

回答1:


A for loop in the view to generate the checkboxes

<% foreach(Inhoud i in ViewData["InhoudList"] as List<Inhoud>) { %>
  <input type="checkbox" name="Inhoud" value="<%= i.name %>" checked="checked" /> <%= i.name %>
<% } %>   

Don't use Html.Checkbox, as that will generate two values for each item in the list (as it uses a hidden input for false values)




回答2:


I recently blogged about implementing the CheckBoxList helper in the MVC Beta. Here is the link.




回答3:


I have my own implementation of CheckListBox which has support for ModelState. If you are interested it's in Un CheckBoxList que funciona en ASP.NET MVC. The post is in Spanish, but you shouldn't have any problems reading the code.

What is interesting in Jeremiah solution is the fact that you can set the initial state of the checkboxes, something you can't do with my CheckListBox.




回答4:


I recommend using JeremiahClark extension posted above. (CheckBoxList)

My controller resulted into very simple instructions. For clarify I add a fragment of my code that's absent in the sample.

        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;

And in the view:

<div><%= Html.CheckBoxList("roles", ViewData["roles"]) %></div>

That's all.



来源:https://stackoverflow.com/questions/201391/why-is-it-removed-asp-net-mvc-checkboxlist-without-mvccontrib

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!