如何在C#中创建var数组动态

时间:2016-05-17 11:39:46

标签: c# ajax

在我的控制器中,我使用以下代码将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={ }。这该怎么做?如果您有任何其他解决方案,则可以接受。

1 个答案:

答案 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);