2012-02-18 3 views
3

Я хотел бы передать 2 строки строки javascript «myArray1» и «myArray2» из ajax в веб-метод. У меня есть следующее, которое не работает.передать несколько массивов; ajax to webmethod

var myArray1 = new Array();  
var myArray2 = new Array();  
// the arrays are filled further in the code. 
// call to the webmethod: 
$.ajax({ 
     type: "POST", 
     url: "mypage.aspx/SavePage", 
     data: ??????, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      alert(msg.d); 
     }, 
     error: function() { 
      alert("failed"); 
     } 
    }); 

Я не знаю, как передать эти массивы в data: части вызова.

C# часть моего кода.

public static string SavePage(List<string> myArray1, List<string> myArray2) 
{ 
} 
+0

Посмотрите на это http://www.aspsnippets.com/Articles /Send-and-Receive-JSON-bjects-to-Web-Service-Methods-using-jQuery-AJAX-in-ASPNet.aspx – coder

ответ

2

Попробуйте так:

data: "{'myArray1':"+JSON.stringify(myArray1)+",'myArray2':"+JSON.stringify(myArray2)+"}", 

В вашем коде:

[System.Web.Services.WebMethod] 
public static string SavePage(List<string> myArray1, List<string> myArray2) 
{ 
return myArray1; 
} 
+0

Th ank вы так хорошо работаете. – pessi

+0

Добро пожаловать! И рад видеть, что это работает для вас. – coder

+0

@coder, я продолжаю получать предупреждение о внутреннем сервере, за которым следует предупреждение об успешном завершении этого примера EXACT, а точка прерывания веб-метода не попадает ни в какое предложение? Я использую JQuery 1.10.2 –

0
url: "mypage.aspx/SavePage", 
    data: { myArray1: myArray1, myArray2: myArray2 } 
0
var data = {}; 
data.myArray1= myArray1; 
data.myArray1= myArray2; 

var json = JSON.stringify(data); 

$.ajax({ 
    ... 
    data: json, 
    ... 
}); 
Смежные вопросы