将阵列发送到控制器

时间:2013-04-07 05:35:24

标签: javascript asp.net-mvc

如何将数组发送到控制器? 我试过了:

window.location.href = "/SomeController/SomeMethod?fields=" + SomeArray;

所以:

window.location.href = "/SomeController/SomeMethod?fields[][]=" + SomeArray;

在控制器中我收到了:

public ActionResult SomeMethod(int[][] fields) // here fields = null;
{
// Some code
}

2 个答案:

答案 0 :(得分:0)

使用jQuery ajax method

将js对象SomeArray转换为Json,并将其传递回ajax方法的data属性中的控制器。下面我使用现代浏览器支持的JSON.stringify,但您可以包含脚本json2以支持旧版浏览器。

              $.ajax({
                    url: '/SomeController/SomeMethod',
                    type: 'POST',
                    data: JSON.stringify(SomeArray),
                    dataType: 'json',
                    contentType: 'application/json; charset=utf-8',
                    success: function (result) {
                        alert("Success");
                    },
                    error: function (xhr) {
                        alert(xhr.statusText + " Internal server error")
                    }
                })

答案 1 :(得分:0)

如果您使用的是jQuery,请尝试jQuery.param

var  data ={

    fields :[
        [
            'car',
            'bike'
        ]
    ]
};

window.location.href = 'SomeController/SomeMethod?'
                       + decodeURIComponent( $.param(data) );