2010-02-17 83 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是你已经建立了一个数组检查复选框,你的字典参数将成为一个字符串数组。