在我的控制器中,我使用以下代码将2个列表返回给ajax请求:
public JsonResult getdata(int seat_plane_id)
{
int lid;
layoutsController L = new layoutsController();
JsonResult result = L.getlayouts(seat_plane_id);
List<layouts> L1 = (List<layouts>)result.Data;
List<SeatPlans>[] allUser = new List<SeatPlans>[2];
for(int i=0; i<L1.Count; i++)
{
String lid1 = L1[i].ticket_no_start;
lid = Int32.Parse(lid1);
allUser[i]= new List<SeatPlans>();
allUser[i]= db.SEATPLAN.Where(d => d.layout_id == lid).ToList();
}
var v = new { allUser0 = allUser[0], allUser1 = allUser[1] ,allUser2= allUser[2] };
return Json(v, JsonRequestBehavior.AllowGet);
}
我在ajax请求中捕获返回的值为:
success: function (v) {
loadData(v.allUser0);
loadData(v.allUser0);
}
但我的问题是:我的动态尺寸为allUser
(尺寸为L1.Count
)。所以我会得到L1.Count
没有列表。所以我需要动态创建var v={ }
。这该怎么做?如果您有任何其他解决方案,则可以接受。
答案 0 :(得分:2)
简单地使v
成为字典。序列化程序将为您生成与动态对象相同的JSON。
var v = new Dictionary<string, SeatPlans>();
int id = 0;
foreach (SeatPlans sp in allUser)
{
v.Add($"allUser{id}", sp);
id++;
}
return Json(v, JsonRequestBehavior.AllowGet);