jQuery datatable传递字符串数组作为参数

时间:2018-07-31 04:55:42

标签: jquery asp.net asp.net-mvc datatable

我想将字符串数组作为参数发送到服务器端。但这是行不通的。但是我可以将字符串作为参数发送到服务器端,而不会出现任何问题。这些数据发送到mvc控制器。我正在使用jquery数据表1.10.16。

 $(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "test/getall",
            "data": function ( d ) {
                d.Ids = ["123", "333", "444"]; 
            }
        }
    } );
} );

3 个答案:

答案 0 :(得分:0)

string strCommaSepList =  "123,333,444";
//convert to string array

string[] strCommanSepArray = strCommaSepList.Split(",");

您可以选择将数据发送到服务器的另一种方法。 如果您使用逗号分隔的字符串(例如“ 123,333,444”)发送数据 然后在服务器端,您可以通过内置的explode函数使它成为一个数组

答案 1 :(得分:0)

正如@TetsuyaYamamoto所建议的,可以通过在请求中添加“ contentType”:“ application / json” 并使用 return JSON.stringify(d)将数据作为json返回来实现。

$(document).ready(function() {
        $('#example').DataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": {
                "url": "test/getall",
                "contentType": "application/json",
                "data": function ( d ) {
                    d.Ids = ["123", "333", "444"]; 

                    return JSON.stringify(d);
                }
            }
        } );
    } );

答案 2 :(得分:0)

您可以使用整数数组,也许这段代码可以帮助您

      "ajax": {
                "url": "testUrl",
                "data": function(d) {
                    d.ids=integerArray.join(',');
                 },
              }