如何在ASP.NET MVC3中使用“FormCollection”接收关联数组数据

时间:2015-10-16 14:47:57

标签: c# jquery ajax asp.net-mvc asp.net-mvc-3

我有以下数据将ajax调用发送到控制器操作:

var data = {
    "PersonalInfo": [
        {      
            "FirstName": "Leonel",
            "LastName": "Messi"     
        },
        {
            "FirstName": "Cristiano",
            "LastName": "Ronaldo" 
        }
    ]
};

Ajax调用方法:

$.ajax({
    url: "/Home/Create",
    type: "POST",
    dataType: "json",
    data: (JSON.parse(data)).PersonalInfo,
    success: function (response) { }                       
});

控制器操作:

public ActionResult Create(FormCollection formCollection)
{
    base.Create(formCollection);
}

在服务器端,我需要FormCollection的数组/列表,例如:

formCollection[0] = {      
    "FirstName": "Leonel",
    "LastName": "Messi"     
}

formCollection[1] = {      
    "FirstName": "Cristiano",
    "LastName": "Ronaldo"      
}

或类似代码,以便我可以多次调用base.Create(formCollection)方法以获取多个个人信息。

public ActionResult Create(List<FormCollection> formCollection)
{

}

但这是不可能的,这个背景有没有替代方案?

1 个答案:

答案 0 :(得分:1)

你必须使用formcollection吗?

Visual Studio有一个特殊的菜单选项选项,可以使用JSON对象并输出modelbinder映射到的类。复制您期望的JSON结果(数据对象)。

转到课程文件,然后转到visual studio的菜单栏,Edit =&gt; Paste Special =&gt; Paste JSON as classes

使用结果类作为api控制器动作调用的参数,它们应该映射。