1

在我看来,我有几个 [n].propertyName 数组字段,当它进入控制器时,我想将 formCollection 字段转换为对象 myobject[n].propertyName。

例如,上下文:

看法:

foreach (var item in Model.SSSubjobs.AsEnumerable())

<%: Html.Hidden("["+c+"].sssj_id", item.sssj_id )   %>
<%: Html.Hidden("["+c+"].order_id", item.order_id ) %>
<%: Html.TextBox("["+c+"].farm", item.farm %>
<%: Html.TextBox("["+c+"].field", item.field %>

c++;

控制器:

我想把上面的[0].sssj_id变成sssj[0].sssj_id或者sssj 对象列表

我的第一个想法是在表单集合中查找以“[”开头的内容,但我觉得这不对……

据我所知:

 public IList<SoilSamplingSubJob> extractSSSJ(FormCollection c)
        {
            IList<SoilSamplingSubJob> sssj_list=null;
            SoilSamplingSubJob sssj;


                var n=0;
                foreach (var key in c.AllKeys)   // iterate through the formcollection 
                {
                    var value = c[key];

                    if(key.StartsWith("[")) // ie turn [0].gps_pk_chx into sssj.gps_pk_chx
                       ???
                }



            return sssj_list;
        }
4

1 回答 1

1

我会让模型框架为你做这件事,而不是自己编写代码。从您的代码中,我看不出您不想这样做的任何原因。

查看 Phil Haack 关于模型绑定到列表的帖子。

于 2010-05-30T04:12:07.307 回答