如何在ASP.NET MVC控制器中迭代JSON对象?

时间:2012-01-27 18:03:18

标签: c# asp.net-mvc

我正在试图弄清楚如何在ASP.NET MVC控制器中迭代JSON对象。我遇到的每个例子看起来都是如下,其中假定发布的JSON包含单个对象。但是,让我们说在我下面的例子中,我希望我的控制器处理一组人而不是一个人。因此,我的inputModel将包含一堆Names和Ages。例如,{"Name": "Bob", "Age": "30"},{"Name": "Paul", "Age": "19"}。您如何编写控制器代码来迭代inputModel中的人员,将每个人保存到该数据库?

控制器代码

[HttpPost]
public ActionResult Save(PersonInputModel inputModel) {
try{        
Person person = new Person();
person.Name = inputModel.Name;
person.Age = inputModel.Age;
Add(person);
Save(person);
}
catch {
//handle the error
}
}

1 个答案:

答案 0 :(得分:2)

假设您正在发送一个数组(请注意JSON字符串周围的[]括号,因为您在问题中显示的内容无效JSON):

[{"Name": "Bob", "Age": "30"},{"Name": "Paul", "Age": "19"}]

你可以拿一个数组:

[HttpPost]
public ActionResult Save(PersonInputModel[] persons) 
{
    foreach (var person in persons)
    {
        var name = person.Name;
        var age = person.Age;
        ...
    }
    ...
}