2013-04-01 46 views
0

如何發送與JS後返回到ASP.NET Web方法字符串數組,代碼樣品低於:如何通過JS發佈數組字符串返回Web方法?

function service() { 
      var items = $('#jqxTree').jqxTree('getCheckedItems'); 
      // var jsonText = JSON.stringify({ list: items }); 
      myData = {}; 
      for (index in items) { 
       myData[index] = items[index].label; 
      } 
      $.ajax({ 
       type: "POST", 
       url: "ServiceConfiguration.aspx/ProcessIndexes", 
       data: "{'jsonValue': " + JSON.stringify(myData) + "}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: false, 
       cache: false, 
       success: function (msg) { 

       } 
      }); 
      //alert(items); 
     } 

現在我有以下努力:

[WebMethod(EnableSession = true)] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public static void ProcessIndexes(List<string> jsonValue) 
     { 
      var serializer = new JavaScriptSerializer(); 


     } 
+1

你需要顯示一些代碼 –

+0

@Andrew我已經更新了代碼示例...謝謝! – mknayab

+0

「jsonValue」周圍有單引號...... JSON需要雙引號。 – jmar777

回答

1

去過一段時間,因爲我去過.NET中的土地,但這樣的事情應該工作:

$.ajax({ 
    type: "POST", 
    url: "SomeForm.aspx/SomeWebMethod", 
    data: JSON.stringify({ someValues: ["foo", "bar"] }), 
    contentType: "application/json", 
    dataType: "json", 
    success: function(resp) { 
     // handle success here 
    }, 
    error: function() { 
     // handle error here 
    } 
}); 
+0

謝謝@ jmar777,讓我檢查這一點,如果它的工作,我會回來給你很多讚賞:-)因爲我的頭撞在這:( – mknayab

+0

我也只是注意到你的WebMethod期待一個列表 ',而我的例子是發佈一個完整的JSON對象(嵌套在它內部的數組),這超出了我記憶的領域,但我認爲這需要解決,也許只是接受'String jsonValue'然後用你的'JavaScriptSerializer'反序列化它... – jmar777

相關問題