如何通过jquery调用具有键/值参数的wcf方法?

时间:2012-08-31 13:14:14

标签: ajax wcf jquery

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



$('#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服务。我会写两种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。哪一个是有效的方法?

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

1 个答案:

答案 0 :(得分:1)

试试这个

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

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

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