JavaScript数组到MVC控制器

JavaScript数组到MVC控制器,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,我有一个简单的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

我有一个简单的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;

    }
}
public void AddPerson(列表方法参数)
{
foreach(methodParam中的新条目项)
{
字符串名称=item.age+item.address;
}
}

在调试中运行代码时,传递给控制器方法的值始终为NULL或0。我似乎无法使数组正确通过。我在以前的帖子上读到,
traditional:true
会解决这个问题。。。但这对我来说并不重要。有人有什么想法吗?

尝试将此添加到您的方法签名中:

[HttpPost]
public void AddPerson(List<newEntry> methodParam)
[HttpPost]
public void AddPerson(列表方法参数)

正如Gavin所说,使用
data:dataToPost

是否尝试将其作为
data:dataToPost
传递?您当前正在传递一个包含数组而不是数组本身的对象。它需要是
data:JSON.stringify({methodParam:operationCollection}),
并添加
内容类型:application/JSON;charset=utf-8,
选项(请注意,
traditional:true,
不是必需的)。您还应该使用
url:'@url.Action(“AddPerson”,“Home”),
来确保url的生成是正确的。