将JSON对象发布到WebService并在那里处理它

时间:2012-03-08 20:52:13

标签: jquery asp.net json

我正在创建以下JSON对象

 $("#btnSubmit").click(function () {
     var poll = { 'q': $('#txtQuestion').val(), 'a': [] };

     for (i = 1; i < counter; i++) {
         var a = $('#txtAnswer_' + i).val();
         poll.a.push(a);
     }


                  $.ajax({
                        type: 'POST',
                        url: "../_ws/Polls.asmx",
                        data: JSON.stringify(poll),
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json'

                  });



 });

基本上,这会回复问题文本框的值并回答轮询的文本框(即时创建)。结果是'poll'对象。

我想将此对象发送到Web服务,如上所示。直到这里没问题。我的问题是如何检索这个json对象并在我的Web服务中的函数中处理它?<​​/ p>

<WebMethod()> _
<ScriptMethod()>
Public Function AddPoll(**??? as ???**) As String

End Function

如果有人能提供帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,poll最终会看起来像这样吗?

{ q: 'Question text', a: [ 'Answer 1', 'Answer 2', 'Answer 3' ] }

如果是这样,您可以使用的简单方法声明如下:

Public Function AddPoll(q as String, a as List<string>)

如果你想要更精确的东西,你可以建立自己的一套匹配类型:

public class PollDTO {
  public string q { get; set; }
  public List<string> a { get; set; }
}

<WebMethod()>
Public Function AddPoll(pollData as PollDTO)

您还需要更改jQuery数据参数,以便将单个变量下的数据分组:

data: JSON.stringify({ pollData: poll })

有关此内容的更多信息:http://encosia.com/using-complex-types-to-make-calling-services-less-complex/