2008-10-14 12 views
19

爲什麼CheckBoxList從ASP.NET MVC預覽版5中刪除?它爲什麼被刪除:ASP.NET MVC CheckBoxList(不含MVCContrib)

目前我沒有看到任何方式可以創建複選框列表(具有相似的名稱但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 
+0

你可以使用這裏的一個:http://awesome.codeplex.com – Omu 2011-05-20 17:41:58

+0

相關:* [維護ASP.NET MVC中複選框的動態列表狀態](http://stackoverflow.com/questions/ 3291501)* – 2011-08-23 14:19:48

回答

19

for循環在視圖中產生的複選框

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

不要使用Html.Checkbox,因爲這將產生對列表中的每個項目兩個值(因爲它採用了隱藏式輸入假值)

0

我推薦使用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> 

這就是全部。

1

我有自己的CheckListBox實現,它支持ModelState。 如果你有興趣它在Un CheckBoxList que funciona en ASP.NET MVC。這篇文章是用西班牙文寫的,但是你不應該在閱讀代碼時遇到任何問題。

耶利米解決方案的有趣之處在於,您可以設置複選框的初始狀態,這是您無法使用我的CheckListBox執行的操作。

相關問題