如何通过Ajax POST将数据绑定到Action方法的两个复杂类型参数

时间:2015-01-24 07:03:22

标签: c# jquery asp.net-mvc

到目前为止,我从未需要在服务器方法中将数据从ajax发送到两个或更多复杂类型参数。

我想要实现的是如果我在我的控制器上执行此操作:

[HttpPost]
[Authorize]
public virtual ActionResult SubmitData(Person myPerson, Chair myChair)
{
//..
}

其中Person和Chair是复杂类型,我希望能够从将要正确绑定到myPerson和myChair的ajax发送数据。像这样:

var personData      = { 'Name': Steve, 'Age': 35};
var chairData       = {'NumberOfLegs' : 3, 'Color' : red};

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: myUrl,
        data: {'myPerson':personData, 'myChair':chairData}
    }); 

我试过了,但它不会工作。你能帮帮我吗?调用转到操作,但两个参数都为空值。

1 个答案:

答案 0 :(得分:0)

我已经修改了ajax调用以使用JSON.stringify,这些参数现在运行良好。

var personData      = { 'Name': Steve, 'Age': 35};
var chairData       = {'NumberOfLegs' : 3, 'Color' : red};

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    url: myUrl,
    data: JSON.stringify({'myPerson':personData, 'myChair':chairData})
});