如何解码从控制器通过AJAX传递给javascript的IEnumerable <person>

时间:2015-08-03 09:29:25

标签: javascript c# jquery ajax

控制器操作:

    [HttpPost]
    public IEnumerable<Person> GetPeopleByUserIdAndYear(int userId, int year)
    {
        return DataProvider.GetPeople(userId, year).AsEnumerable();
    }

Javascript:

$.ajax({
            cache: false,
            type: "POST",
            url: '@Url.Action("GetPeopleByUserIdAndYear", "Controller")',
            data: { userId: uId, year:selectedYear },
            success: function ( data, textStatus, jqXHR ) {
                debugger;
                //How do I assign the data variable to a javascript array of some sorts?
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(textStatus + '\n' + errorThrown);
            }
        });

所以我的问题是。返回到我需要分配给javascript数组的数据变量的IEnumerable。我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果我理解你的话...... 如果您得到JSON作为回应,请使用var someVar = JSON.parse(data)。 如果data已经是序列化数组,那么只需使用它;)

答案 1 :(得分:0)

你可以在AJAX的成功块中做这样的事情:

for (var i = 0; i < data.length; i++) {
    persons.push(data[i]);
}

其中persons是一个数组。