我有以下数据将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)
{
}
但这是不可能的,这个背景有没有替代方案?
答案 0 :(得分:1)
你必须使用formcollection吗?
Visual Studio有一个特殊的菜单选项选项,可以使用JSON对象并输出modelbinder映射到的类。复制您期望的JSON结果(数据对象)。
转到课程文件,然后转到visual studio的菜单栏,Edit
=&gt; Paste Special
=&gt; Paste JSON as classes
。
使用结果类作为api控制器动作调用的参数,它们应该映射。