在我的视图中我有几个[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;
}
答案 0 :(得分:1)
我会让模型框架为您执行此操作,而不是自己编写代码。从你的代码中我看不出你不想这样做的任何理由。
在model binding to a list上查看Phil Haack的帖子。