用于json嵌套数组的MVC3绑定

时间:2012-04-27 16:24:18

标签: asp.net-mvc json asp.net-mvc-3 data-binding

我有一个简单的javascript数组。它的声明如下:

coords = []

每次用户点击图片时,我都会这样做:

coords.push([x,y])

所以我最终得到这样的东西:(在javascript中)

[[342,144],[477,99],[632,148],[529,162]]

但是我不知道在控制器方法中将它绑定到什么...我已经尝试了

List<List<int>>, int[][], int[,]

它们似乎都不起作用。它只适用于我使用字符串。

这是我用来将其发送到服务器的代码:

$.ajax({
    type: "POST",
    url: "/home/SaveCoords",
    data: { coords: JSON.stringify(coords) }
}).done(function (msg) {
    alert("Data Saved: " + msg);
});

这是我在控制器上使用的代码

[HttpPost]
public ActionResult SaveCoords(string coords)
{
    return Json("Hello", JsonRequestBehavior.AllowGet);
}

帮助?

1 个答案:

答案 0 :(得分:6)

您应将请求内容类型设置为application/json,并相应地更改data

这是工作示例:

    $.ajax({
        type: "POST",
        url: "/home/SaveCoords",
        contentType : 'application/json',
        data: JSON.stringify(coords)
    }).done(function (msg) {
        alert("Data Saved: " + msg);
    });

和服务器

    public ActionResult SaveCoords(int[][] coords)
    {
        return View();
    }