2009-11-10 25 views
0

在類似:jQuery和Web服務:我可以傳遞數據的多個陣列屬性

$.ajax({ 

    type: "POST",  
    url: "WebService1.asmx/SendValues",  
    data: jsonText,  
    contentType: "application/json; charset=utf-8",  
    dataType: "json",  
    success: function() { alert("it worked"); },  
    failure: function() { alert("Uh oh"); } 

    }); 

我怎麼發送多個陣列到Web服務?可能嗎?或者我應該發送多維數組?

回答

1

假設您正在與之通話的Web服務已準備就緒,我建議您使用多數組路由。在JSON數組看起來像:

[1,2,3] 

所以,你可以在這樣的陣列傳遞多個陣列:

[[1,2,3],[4,5,6]] 
+0

所以換句話說,如果我想將多個參數傳遞給我的web服務(這是前所未聞的),我必須做一些討厭的拆包。 很棒.... – sarsnake 2009-11-10 23:47:07

+0

那麼如何在我的javascript代碼中發送這個? data:...... – sarsnake 2009-11-11 00:00:42

1

我明白了: 在我的javascript我有:

function Save() { 
    var list = [["1","2","3"],["4","5","6"],["34","88","898"]]; 
    var jsonText = JSON.stringify({ list: list }); 

    $.ajax({ 
     type: "POST", 
     url: "http://localhost/TemplateWebService/TemplateWebService/Service.asmx/SaveSampleTemplate", 
     data: jsonText, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(response) { 
      //var arrSamples = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d; 
     alert("success!"); 

      alert(response.d); 


     }, 

     failure: function(msg) { 

      alert("fail");     

     } 

    }); 

} 

然後在我的web服務(asp.net web service)中:

[WebMethod()] 
     public string SaveSampleTemplate(string[][] list) 
     { 

      List<string[]> mylist = list.ToList(); 


      // return list.Count.ToString(); 
      string str = ""; 
      for (int i = 0; i < mylist.Count; i++) 
      { 
       string[] m = mylist[i]; 

       for (int j = 0; j < m.Length; j++) 
       { 
        str += m[j] + " "; 
       } 

      } 
      return str; 

      // return list.Length.ToString(); 
     } 
相關問題