2010-02-17 27 views
1

我從來沒有使用之前的$。阿賈克斯(),如果你看到任何輸入錯誤時通知我;)

即時通訊使用jQuery $就()來調用一個WebMethod與JSON。

將WebMethod的簡單定義應該是這個樣子:

[WebMethod] 
public static bool MyMethod(string a, string b, string c) { 
    ... 
} 

在$阿賈克斯(數據參數的值)是:

MYDATA的=>「 '一':」 val_a」, 'b': 'val_b', 'C': 'val_c'」

這裏是我的Ajax調用:

$.ajax({ 
      type: "POST", 
      url: "AspDotNetPage.aspx/MyMethod", 
      data: "{"+myData+"}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
       alert(msg);     
      } 
      }); 

現在TR噁心的部分來。我需要爲我的webmethod添加一個額外的參數。我必須發送到我的webmethod所有複選框內的某個部門,他們的名字,如果他們被檢查。我有JQuery代碼來選擇這些值。這裏是我在正常的代碼隱藏編程額外的參數看會像

[WebMethod] 
public static bool MyMethod(string a, string b, string c, Dictionary<string,bool> dict) { 
     ... 
} 

保存我的複選框的文本價值,如果它檢查。

我還沒有模糊的想法JSON實際上是如何工作的,我所知道的是我必須儘快完成這項工作。

可能需要使用某種多維javascripts數組。如果您對這個問題的最佳方法有任何想法,我會很高興!

/丹尼爾·斯文森,瑞典

+0

假設這是關於ASP.NET,看起來像http://stackoverflow.com/questions/1527422/send-json-to-webmethod – Nickolay 2010-02-17 17:12:21

回答

1

如果你讓你的bool空的,你可以用你所有的值.serialize()方法,而不是在發佈數據的複選框將簡單地被忽略通過方法:

[WebMethod] 
public static bool MyMethod(string a, string b, string c, bool? chkbox1, bool? chkbox2....) { 
     ... 
} 

你需要添加一個布爾?參數爲您在頁面上的所有可能的複選框。這是提供測試等一個很好的方法。然而,如果你真的想你可以添加另一個目的是您的數據,比如最好的辦法

data: { 'a':'val_a', 'b':'val_b','c':'val_c', 'dict': { 'chk1', 'chk2', 'chk3' } } 

其中CHK1,CHK2,chk3是你已經建立了一個數組檢查複選框,你的字典參數將成爲一個字符串數組。