我在视图中有这个:
<%
foreach (var item in (List<MyType>)ViewData["MyTypeArray"])
{
%><tr>
<td>
<%=Html.Encode(item.Name)%>
</td>
<td>
<%=Html.CheckBox("MyTypeFlags" + item.BitNumber),
/* Model goes here*/,
new {@value = (1 << item.BitNumber)})%> // html attr
</td>
</tr>
<%
}
%>
我希望在Controller中像这样做:
foreach (var item in MyDynamicallyCreatedArray)
{
//if (["MyTypeFlags" + item.BitNumber] != 0) // This shoud be changed
}
问题是我应该如何声明MyDynamicallyCreatedArray并完成循环?
答案 0 :(得分:2)
您应该看一下使用“视图模型”。您基本上只为视图创建“模型”,其中包含视图中所需的数据项。
我经常使用它们,它们确实是一种将数据输入和输出视图的好方法。
有关示例,您可以在此处查看:http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx
答案 1 :(得分:1)
看一下Phil Haack的帖子,它会有一些反复无常的复选框,就好像一个盒子未经检查然后它没有提交一个值。
模型绑定到列表
http://haacked.com/archive/0001/01/01/model-binding-to-a-list.aspx