0
function BuildParams(arr)
{

// arr is an Array
// how to build params based on the length of the array?
// for example when arr.Length is 3 then it should build the below:

var params = {                       
                        'items[0]' : arr[0],       
                        'items[1]' : arr[1],
                        'items[2]' : arr[2]
             },

return params;

}

次に、それをajaxgetに送信できるようにしたいと思います。

var arr = ['Life', 'is', 'great'];

 $.get('/ControllerName/ActionName', BuildParams(arr))
                .done(function(data, status) {
                    alert("Data: " + data + "\nStatus: " + status);
                })
                .fail(function(data) {
                    alert(data.responseText);
                });
4

3 に答える 3

1
var result = {}
jQuery.each(['Life', 'is', 'great'], function(index, value){
    result['items[' + index + ']'] = value; 
});

jQuery.each

オブジェクトと配列の両方をシームレスに反復するために使用できる汎用イテレータ関数。長さプロパティを持つ配列および配列のようなオブジェクト(関数のargumentsオブジェクトなど)は、0からlength-1までの数値インデックスによって繰り返されます。他のオブジェクトは、名前付きのプロパティを介して繰り返されます。

于 2013-02-28T14:55:46.917 に答える
0

変更BuildParams(arr):

{items: arr}

jQuery は、配列である項目を持つオブジェクトを含め、オブジェクトをクエリ文字列に正しくシリアル化します。

于 2013-02-28T15:10:54.407 に答える
0

配列を繰り返し処理し、配列内の各要素をparamsオブジェクトの新しいプロパティとして追加します。

var params = {}; // start with an empty object
for(var i = 0; i < arr.length; i++) {
    params["items[" + i + "]"] = arr[i];
}

return params; // return the populated params object
于 2013-02-28T14:53:39.633 に答える