2012-04-27 111 views
4

我有一個簡單的javascript數組。它的聲明如下:json嵌套數組的MVC3綁定

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); 
} 

幫助上使用的代碼?

+0

您是否嘗試過的List <元組>? – brightgarden 2012-04-27 17:05:26

回答

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(); 
    } 
+0

是的,正如我所說 - 這是工作示例 – archil 2012-04-27 17:05:38

+1

剛剛確認。有一個upvote。 – 2012-04-27 17:08:35

+0

yup!有用!非常感謝! – 2012-04-27 17:17:48