2012-01-05 8 views
1

Мой Аякса метод:Как передать массив 2d методу asp.net MVC из jquery ajax?

$.ajax({ 
    url: actionURL, 
    type: 'POST', 
    dataType: 'json', 
    data: { values: data }, 
    success: function (data) { 
    } 
}); 

Мой метод управления:

 [AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult SaveParameter(string [][] values) 
     { 
      ... 
     } 

Я попытался кучу вещей, но ничего не работает. Как я могу составить «данные» в javascript?

ответ

3

Вы должны размещать данные в следующем формате

{ 
"values[0][0]": "Some value", 
"values[1][0]": "Some value", 
"values[0][1]": "Some value", 
"values[1][1]": "Some value", 
"values[2][0]": "Some value", 
"values[0][2]": "Some value", 
"values[2][1]": "Some value", 
... 
} 
+0

Это сработало, спасибо! – NibblyPig

0

Попробуйте использовать JSON.stringify.

var chiavi = []; 
chiavi[0] = ["A", "B"]; 
chiavi[1] = ["C", "D"]; 

     $.ajax({ 
      type: "POST", 
      url: jsonUrl, 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      traditional: true, 
      data: JSON.stringify({ 
       Values: chiavi 
      }), 
      success: function (result) { 
      }, 
      error: function (response, textStatus, errorThrown) { 
      } 
     }); 
+0

Пробовал, но это не сработало. 'values' was null – NibblyPig

+0

@SLC: mmm вы можете увидеть запрос с помощью инструментов Chrome Dev или Firebug? возможно, проблема на стороне MVC (привязка модели). Не забудьте сохранить традиционный: true в вашем аякс-вызове или по умолчанию для создания модели не будет работать (при условии, что вы работаете с MVC3) – BigMike