Tôi tin rằng câu hỏi này áp dụng cho bất kỳ "Đối với" người giúp đỡ Html, nhưng vấn đề cụ thể của tôi đang sử dụng CheckBoxFor ...Foreach về sở hữu IEnumerable và CheckBoxFor trong ASP.Net MVC
Tôi có một mô hình đó là của gõ IEnumerable, trong đó quyền là một POCO đơn giản. Mô hình này thực sự là một thuộc tính của một mô hình lớn hơn mà tôi đã tạo một EditorTemplate cho. Đây là hình ảnh lớn hơn của mô hình của tôi:
public class bigmodel
{
public string Title {get; set;}
public string Description {get; set;}
[UIHint("ListRights")]
public IEnumerable<rights> Rights {get;set;}
}
public class rights
{
public bool HasAccess {get; set;}
public string Description {get;set;}
}
Tôi đã tạo một bản chỉnh sửa được gọi là "ListRights" mà chế độ xem chính của tôi sử dụng. Ví dụ: <% = Html.EditorFor (m => m.Rights)%>.
Trong ListRights.ascx, tôi muốn mã như thế này:
<table>
<% foreach(rights access in Model)
{ %>
<tr>
<td>
<%=Html.CheckBoxFor(access) %>
</td>
<td>
<%=access.Description %>
</td>
</tr>
<% } %>
</table>
Tôi biết dòng CheckBoxFor không làm việc, nhưng tôi muốn làm điều gì đó mà tạo ra kết quả tương tự, như thể truy cập là một tài sản trên ngươi mâu.
Trong ví dụ trên, tôi muốn mọi thứ tự động đăng trên bài đăng.
tôi đã cố gắng giả mạo CheckBox với mã tương tự như sau, nhưng nó không autobind:
<table>
<% for(int i=0; i < Model.Count(); i++)
{ %>
<tr>
<td>
<%=Html.CheckBox(string.Format("[{0}].HasAccess",i), Model.ElementAt(i).HasAccess)%>
</td>
<td>
<%=access.Description %>
</td>
</tr>
<% } %>
</table>
Bất kỳ lời đề nghị?
tôi không thực sự nhận được câu trả lời này, tại sao bạn lại trải qua tất cả những rắc rối này? – mare
ok, sau khi một số suy nghĩ nhiều hơn và đi đến blog của Steven tôi thấy những gì bạn đang cố gắng để đạt được. Các giải pháp của Steve hoạt động trong trường hợp này. Mặc dù tôi không nghĩ rằng trải nghiệm người dùng là bất kỳ tốt trong trường hợp này - chỉnh sửa nhiều mục theo cách này và đăng tất cả chúng trở lại bộ điều khiển trong một lần. – mare