Почему это удалено: ASP.NET MVC CheckBoxList (без MVCContrib)
Почему CheckBoxList удален из предварительного просмотра ASP.NET MVC 5?
В настоящее время я не вижу способа, которым я могу создать список флажков (с похожими именами, но с разными идентификаторами), чтобы люди могли выбрать из списка 0-1-больше.
В библиотеке MVCContrib присутствует список CheckBoxList
, но он устарел. Я могу понять это для других HtmlHelpers, но, похоже, нет замены для CheckBoxList
в предварительном просмотре 5.
Я хотел бы создать очень простой список, как вы видите ниже, но что это лучший способ сделать это с помощью предварительного просмотра 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
Ответы
Ответ 1
A для цикла в представлении для создания флажков
<% foreach(Inhoud i in ViewData["InhoudList"] as List<Inhoud>) { %>
<input type="checkbox" name="Inhoud" value="<%= i.name %>" checked="checked" /> <%= i.name %>
<% } %>
Не используйте Html.Checkbox
, так как это приведет к генерации двух значений для каждого элемента в списке (поскольку он использует скрытый ввод для ложных значений)
Ответ 2
Недавно я писал о реализации помощника CheckBoxList в бета-версии MVC. Вот ссылка.
Ответ 3
У меня есть собственная реализация CheckListBox, которая поддерживает ModelState.
Если вас это интересует в Un CheckBoxList que funciona en ASP.NET MVC. Сообщение написано на испанском языке, но у вас не должно быть никаких проблем с чтением кода.
Что интересно в решении Иеремии, так это то, что вы можете установить начальное состояние флажков, что вы не можете сделать с моим 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>
Что все.