C# 将Dynamicly创建的数组从视图传递到控制器。ASP.NET MVC v1

C# 将Dynamicly创建的数组从视图传递到控制器。ASP.NET MVC v1,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有这个想法: <% foreach (var item in (List<MyType>)ViewData["MyTypeArray"]) { %><tr> <td> <%=Html.Encode(item.Name)%> </td>

我有这个想法:

 <%
     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>
            <%        
                }
            %>

问题是我应该如何声明MyDynamiclyCreatedArray并完成这个循环?

您应该看看如何使用“视图模型”。您基本上只为视图创建“模型”,其中包含视图中所需的数据项

我经常使用这些工具,它们确实是一种很好的方法,可以让数据进出您的视图


例如,您可以在此处查看:

您应该使用“视图模型”查看。您基本上只为视图创建“模型”,其中包含视图中所需的数据项

我经常使用这些工具,它们确实是一种很好的方法,可以让数据进出您的视图


例如,您可以在此处查看:

看看Phil Haack的帖子,它使用复选框进行了一些调整,好像复选框未选中,那么它不会提交值

绑定到列表的模型


看看Phil Haack的帖子,它的复选框有点小把戏,好像一个复选框没有被选中,那么它就没有提交值

绑定到列表的模型


我知道这不是一个很好的决定,我应该使用强类型视图,但我现在需要的是as isI,我知道这不是一个很好的决定,我应该使用强类型视图,但我现在需要的是as is
  foreach (var item in MyDynamicallyCreatedArray)
            {
 //if (["MyTypeFlags" + item.BitNumber] != 0) // This shoud be changed
 }