从View To Controller传递动态创建的数组。 ASP.NET MVC v1

时间:2009-10-21 17:15:33

标签: c# asp.net asp.net-mvc

我在视图中有这个:

 <%
     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并完成循环?

2 个答案:

答案 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