0

你好; 我有一个关于调用 wcf 服务的问题。如何填充数据数组键/值对?如何通过jquery有效地发送collaction?



$('#btn').click(function () {
            var val = [];
            var names = [];
            $('#cblist :checkbox:checked').each(function (i) {
                val[i] = $(this).val();
                names[i] = $(this).attr('name');
            });

        });


<div id="cblist">"Dynamically filling"</div>
 <br />
     <input type="button" class="btn" value="AddParameter" id="btn" name="btnDelete" />

我不喜欢下面的方法(但下面的代码不起作用)你喜欢这个吗?如果您愿意,我怎样才能编写正确的编码?


for (var i in names,val) data.push({ name: names[i], value: val[i] });
    $.ajax({
       url: "echo/json/",
       data: data,
       dataType: "json",
       traditional: true,
       success: function(msg){alert(msg)}
    });

但我不能:我不喜欢调用 wcf 服务每个数组项。我将编写 2 种 wvf 服务:

第一个是:


Service1.svc/AddParameter:

public void AddParameters(int id, params string[] names, params string[] values)
{
    //dosomething
}

第二个是:


Service2.svc/AddParameter:

public void AddParameters(int id, NameValueCollection  NameswithValues)
{
    //dosomething

}

概括; 我想为json格式准备数据数组:data{ id: 1, name1:value1, name2,value2..........n},然后调用Service1和Service2。哪一种是有效的方法?

我的主要问题是:如何编写调用Service1.svc和Service2.svc的高效json ajax方法?

4

1 回答 1

1

试试这个

var data;    
$('#cblist :checkbox:checked').each(function (i) {

                   data[$(this).attr('name')] = $(this).val();
                });

然后只需在您的 ajax 调用中传递数据。

于 2012-08-31T13:20:23.707 回答