javascript - 使用ajax javascript将一个int数组传递给MVC Controller

标签 javascript ajax asp.net-mvc

我在这里做错了什么?

我可以成功地将 4 个 bool 参数传递给 Controller ​​。现在我想将一个 int 数组传递给我的 Controller ,但它不起作用 - 我在示例中留下了我的工作代码(注释掉)所以你可以看到我并没有改变那么多 - 我想我是缺少一些简单的东西(毕竟是 17:44!!!)。我可以看到数组是使用 alert(rolesChecked); 填充的声明:

var rolesChecked = [];
$('[type="checkbox"].role-checkbox').each(function () {
    if (this.checked)
    {
        rolesChecked.push($(this).val());
    }
});

alert(rolesChecked);

//var administrator = $('#cbAdministrator').is(":checked");
//var manager = $('#cbManager').is(":checked");
//var technician = $('#cbTechnician').is(":checked");
//var transcriber = $('#cbTranscriber').is(":checked");

if (rolesChecked.count > 0){//administrator || manager || technician || transcriber) {
    $.ajax({
        url: '@Url.Action("GetFutureHolidays", "Employee")',
        type: 'GET',
        dataType: 'json',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: {
            roleIdXXXs: rolesChecked
            //includeAdministrator: administrator,
            //includeManager: manager,
            //includeTechnician: technician,
            //includeTranscriber: transcriber
        },
        success: function (data) {

            //do something...
        }
    });
}

Controller Action :

public string GetFutureHolidays(List<int> roleIdXXXs)//bool includeAdministrator, bool includeManager, bool includeTechnician, bool includeTranscriber)
{
    //do something
}

使用旧代码, Controller 操作将被击中...使用数组,它永远不会被击中...我在这里缺少什么...

另外,我认为List<int> roleIdXXXs应该没问题,不过我也试过了List<string> , int[]string[]万一不是!!!

最佳答案

您需要添加 traditional: true ajax 选项以将数组回发到集合中

$.ajax({
    url: '@Url.Action("GetFutureHolidays", "Employee")',
    type: 'GET',
    dataType: 'json',
    cache: false,
    data: { roleIdXXXs: rolesChecked },
    traditional: true, // add this
    success: function (data) {
    }
});

另请参阅 answer to this question有关这些选项的作用及其生成的表单数据的更多详细信息。

关于javascript - 使用ajax javascript将一个int数组传递给MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021551/

相关文章:

javascript - Ajax 获取请求在 5 次调用后没有得到响应

c# - MVC4 使用 linq to sql 返回存储过程输出

javascript - 三星智能电视弹出列表输入

javascript - 将ckeditor中编辑的数据保存到html文件

javascript - 可以从网页转储 AJAX 内容吗?

javascript - mvc 和 ajax - 未命中模型属性

asp.net-mvc - ASP.NET MVC2 项目使用哪个数据网格?

javascript - 当存在相邻元素时,d3 svg 缩放不起作用

javascript - 划线粗底细顶-车速表指针

javascript - 使用 Ajax 上传多个文件不进行 POST