私の見解では、いくつかの [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;
}