mvc example checkboxlistfor check asp.net-mvc checkboxlist

example - Por qué se elimina: ASP.NET MVC CheckBoxList(sin MVCContrib)



checkboxfor mvc (4)

Hace poco publiqué sobre la implementación del complemento CheckBoxList en MVC Beta. Aqui esta el link.

¿Por qué se elimina CheckBoxList de la versión de prueba 5 de ASP.NET MVC?

Actualmente, no veo ninguna manera de crear una lista de casillas de verificación (con nombres similares pero diferentes ID) para que las personas puedan seleccionar 0-1-más opciones de la lista.

Hay una lista CheckBoxList presente en la biblioteca MVCContrib, pero está en desuso. Puedo entender esto para los otros HtmlHelpers, pero no parece haber un reemplazo para CheckBoxList en la vista previa 5.

Me gustaría crear una lista muy simple como la que se ve a continuación, pero ¿cuál es la mejor manera de hacerlo utilizando 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


Recomiendo usar la extensión JeremiahClark publicada anteriormente. ( CheckBoxList )

Mi controlador dio como resultado instrucciones muy simples. Para aclarar, agrego un fragmento de mi código que está ausente en la muestra.

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;

Y en la vista:

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

Eso es todo.


Tengo mi propia implementación de CheckListBox que tiene soporte para ModelState. Si está interesado, está en Un CheckBoxList que funciona en ASP.NET MVC . La publicación está en español, pero no debería tener problemas para leer el código.

Lo que es interesante en la solución de Jeremiah es el hecho de que puedes establecer el estado inicial de las casillas de verificación, algo que no puedes hacer con mi CheckListBox.


Un bucle for en la vista para generar las casillas de verificación

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

No use Html.Checkbox , ya que eso generará dos valores para cada elemento en la lista (ya que usa una entrada oculta para valores falsos)