2012-04-27 4 views
4

У меня есть простой массив javascript. он объявлен как это:Связывание MVC3 для вложенного массива json

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

ответ

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

+1

Только что подтверждено. Имейте upvote. –

+0

yup! оно работает! большое спасибо! –

Смежные вопросы