我有一个简单的JavaScript数组,我试图传递给控制器
function SubmitData()
{
var operationCollection = new Array();
var test1 = { name: "Bill", age: "55", address: "testing" };
operationCollection.push(test1);
var test2 = { name: "Ben", age: "55", address: "testing" };
operationCollection.push(test2);
var test3 = { name: "Flo", age: "55", address: "testing" };
operationCollection.push(test3);
var dataToPost = JSON.stringify(operationCollection);
$.ajax({
type: "POST",
url: "Home/AddPerson",
datatype: JSON,
data: { methodParam: dataToPost },
traditional: true
});
}
C#控制器有一个类
public class newEntry
{
public string name { get; set; }
public string age { get; set; }
public string address { get; set; }
}
和方法
public void AddPerson(List<newEntry> methodParam)
{
foreach (newEntry item in methodParam)
{
string name = item.age + item.address;
}
}
当我在debug中运行代码时,传递给控制器方法的值总是NULL或0.我似乎无法使数组正确传递。我已阅读以前的帖子traditional: true
将解决这个问题......但它并不适合我。有没有人有任何想法?
答案 0 :(得分:2)
尝试将此添加到方法的签名中:
[HttpPost]
public void AddPerson(List<newEntry> methodParam)
同样,Gavin声明使用data: dataToPost