Преобразование массива formCollection в объекты в контроллере - PullRequest
1 голос
/ 30 мая 2010

, на мой взгляд, у меня есть несколько полей массива [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;
        }

1 Ответ

1 голос
/ 30 мая 2010

Я бы позволил каркасу модели сделать это для вас, вместо того, чтобы писать код самостоятельно. Из вашего кода я не вижу причин, по которым вы бы не хотели этого делать.

Посмотрите на пост Фила Хаака о привязке модели к списку .

...