4

単純な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);
}

ヘルプ?

4

1 に答える 1

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();
    }
于 2012-04-27T17:03:46.487 に答える