首页 > 解决方案 > 如何将数组发布到 mvc 控制器

问题描述

我想将 java 脚本对象发布到 mvc 控制器

$(document).ready(function () {
        var table = $('#my_table_1').DataTable({
            "paging": true,
            "ordering": true,
            "info": true,
            "search": true,
            "pageLength": 100
});
var d = '';
var data3 = table.on('search.dt', function () {
    //number of filtered rows
    //  console.log(table.rows({ filter: 'applied' }).nodes().length);
    //filtered rows data as arrays
    d = table.rows({ filter: 'applied' }).data()
});
console.log(table.rows({ filter: 'applied' }).data());
$('#excel2').click(function (e) {
    //var data3 = table.on('search.dt', function () {         
    //    console.log(table.rows({ filter: 'applied' }).data());
    //    console.log(data3);
    //});
    console.log(d);
    $.ajax({
        url: '/Administrator/TestDownload',
        type: 'POST',
        data: {data:d},
        cache: false

    }).done(function (response) {
        alert(d);
       });
    });
});

//控制器代码:

public JsonResult TestDownload(String[] data)
    {
        return Json(data,JsonRequestBehavior.AllowGet);
    }

我在控制器中将 null 作为数据参数

预期:想要将数据对象从视图获取到控制器作为控制器中的参数。

实际:控制器中的数据参数为空

标签: arraysajaxasp.net-mvc

解决方案


您必须检查您的 d 变量正确的数组格式。

我在我身边测试了var d = ["test",2,3]控制器,它得到了正确的数据。

$('#excel2').click(function (e) {
    //var data3 = table.on('search.dt', function () {         
    //    console.log(table.rows({ filter: 'applied' }).data());
    //    console.log(data3);
    //});
    d = ["test",2,3]
    console.log(d);
    $.ajax({
        url: '/Administrator/TestDownload',
        type: 'POST',
        data: {data:d},
        cache: false

    }).done(function (response) {
        alert(d);
       });
    });
});

推荐阅读