如何在jquery ajax函数中使用多个参数?

时间:2012-03-14 23:42:33

标签: jquery

var states = new Array();        
    states[0] = { Id: 1, Name: "Maharashtra" };
    states[1] = { Id: 2, Name: "Punjab" };

    var Id = new Array();
    Id[0] = 0;
    Id[1] = 1;




    $.ajax({
        type: "POST",
        url: "WebService.asmx/MultiDim",
        data: "{'states':" + JSON.stringify(states) +",'rowId':" + JSON.stringify(Id) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Do something interesting here.
        }
    });    


[WebMethod]
        public void MultiDim(statesTemplate[] states, Id rowId)
        {

        }

我没有在我的网络服务功能中获得rowId第二个参数。

2 个答案:

答案 0 :(得分:0)

尝试:

data : { states : states, rowId : Id },

您可以传递$.ajax()函数作为对象的data属性,jQuery将负责其余的工作。

  

数据

     

要发送到服务器的数据。 如果转换为查询字符串,则转换为   不是字符串。它附加到GET请求的URL。看到   processData选项可防止此自动处理。对象必须   是键/值对。 如果value是一个数组,jQuery序列化多个   具有相同键的值,基于传统设置的值   (如下所述)。

来源:http://api.jquery.com/jquery.ajax/

请注意,您可以按字面意思初始化array

var states = [ { Id : 1, Name : 'Maharashtra' }, { Id : 2, Name : 'Punjab' } ],
    Id     = [ 0, 1 ];

答案 1 :(得分:0)

您正在创建的JSON字符串是无效的JSON。 JSON需要双引号。用单引号开始你的字符串,并使用双引号作为键和值。

使用jsonlint.com验证