0

やあ; 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サービスを呼び出すのは嫌いです。私は2種類のwvfサービスを書きます:

最初のものは:


Service1.svc/AddParameter:

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

2つ目は:


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を呼び出す効率的なjsonajaxメソッドを作成する方法です。

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 に答える