2008-10-14 27 views
19

Tại sao CheckBoxList bị xóa khỏi bản phát hành xem trước ASP.NET MVC 5?Tại sao nó bị xóa: ASP.NET MVC CheckBoxList (không có MVCContrib)

Hiện tại tôi không thấy bất kỳ cách nào để tạo danh sách hộp kiểm (có tên tương tự nhưng khác với id) để mọi người có thể chọn thêm 0-1 tùy chọn từ danh sách.

Có một danh sách CheckBoxList có trong thư viện MVCContrib nhưng không được dùng nữa. Tôi có thể hiểu điều này cho các HtmlHelpers khác, nhưng có vẻ như không thay thế cho CheckBoxList trong bản xem trước 5.

Tôi muốn tạo một danh sách rất đơn giản như bạn thấy bên dưới, nhưng cách tốt nhất để làm điều này bằng cách sử dụng bản phát hành xem trước 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

u có thể sử dụng một từ đây: http://awesome.codeplex.com – Omu

+0

Related: * [Duy trì trạng thái danh sách động của hộp kiểm trong ASP.NET MVC] (http://stackoverflow.com/questions/ 3291501) * –

+0

Đối với giải pháp sạch, phức tạp nhất, [câu trả lời cho câu hỏi tràn ngăn xếp * Duy trì trạng thái danh sách động của các hộp kiểm trong ASP.NET MVC *] (http://stackoverflow.com/questions/3291501/asp- net-mvc-duy trì-state-of-a-năng động-danh sách-of-hộp kiểm tra/3298821 # 3298821) hoạt động tốt. Tôi đồng ý với câu trả lời đầu tiên, tôi sẽ không chạm vào 'Html.CheckBox'. Nó tạo ra nhiều vấn đề hơn là giải quyết. – Aaron

Trả lời

19

Một vòng lặp for trong giao diện để tạo ra các hộp kiểm

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

Không sử dụng Html.Checkbox, vì điều đó sẽ tạo ra hai giá trị cho mỗi mục trong danh sách (như nó sử dụng một đầu vào ẩn cho false values)

+0

Tôi nhận được lỗi trong khi điều này là không thể chuyển đổi ViewData vào danh sách chung chung (Danh sách) ... tại sao nên điều này? –

0

Tôi khuyên bạn nên sử dụng JeremiahClark tiện ích mở rộng được đăng ở trên. (CheckBoxList)

Bộ điều khiển của tôi dẫn đến hướng dẫn rất đơn giản. Để làm rõ, tôi thêm một đoạn mã không có trong mẫu.

 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; 

Và trong giao diện:

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

Đó là tất cả.

1

Tôi đã thực hiện của riêng mình CheckListBox có hỗ trợ cho ModelState. Nếu bạn quan tâm đến nó trong số Un CheckBoxList que funciona en ASP.NET MVC. Bài đăng bằng tiếng Tây Ban Nha, nhưng bạn không nên gặp bất kỳ vấn đề nào khi đọc mã.

Điều thú vị trong giải pháp Jeremiah là bạn có thể đặt trạng thái ban đầu của hộp kiểm, điều mà bạn không thể thực hiện với CheckListBox của mình.

Các vấn đề liên quan