在select2 jquery插件的数据部分传递一个数组

Posted

技术标签:

【中文标题】在select2 jquery插件的数据部分传递一个数组【英文标题】:Passing an array in data section of select2 jquery plugin 【发布时间】:2013-02-20 01:26:57 【问题描述】:

我有与选择二jquery插件(用MVC3,剃须刀和敲除JS),并且我想传递给我的AJAX调用自定义参数。 P>的问题

我有这个代码:

$('#QuickSearchPresentation').select2(
        placeholder: "Search for a movie",
        minimumInputLength: 1,
        ajax:  // instead of writing the function to execute the request we use Select2's convenient helper
            url: '@Url.Action("QuickSearchMainContainerFromPresentationByIdFolders", "DataCenter", new  amount = 10 )',
            contentType: 'application/json',
            dataType: 'json',
            type: 'POST',
            quietMillis: 400,
            data: function (term, page) 
                return ko.toJSON(
                    term: term,
                    idFolders: vm.Container.Catalogs
                );
            ,
            results: function (data, page)  // parse the results into the format expected by Select2.
                // since we are using custom formatting functions we do not need to alter remote JSON data
                console.log('results', data);
                return results: data;
            
        ,
        initSelection: function(element, callback) 

            console.log('element', element);

        ,
        formatResult: containerQuickSearchResult, // omitted for brevity, see the source of this page
        formatSelection: containerQuickSearchResult,  // omitted for brevity, see the source of this page
        dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
        escapeMarkup: function (m)  return m;  // we do not want to escape markup since we are displaying html in results
    );

VM是从敲除JS我的模型,和目录其INT的阵列。 P>

的事情是,我不能传递数组idFolders给Action我的服务器上,带有“”值不能为空的服务器响应。参数名:源”(因为数组被空的动作在我的控制器)。 我尝试一切可能的方式,我认为,我不能找到合适的方式。 P>

我希望你能帮助我这一点。 P>

谢谢, 贡萨洛。 P>

【问题讨论】:

【参考方案1】:

在您的 jQuery ajax 调用中,为您的数据属性尝试将其包装在 JSON.stringify() 中。像这样:

data: function (term, page) 
    return JSON.stringify(ko.toJSON(
        term: term,
        idFolders: vm.Container.Catalogs
    ));
,

我注意到使用 JSON.stringify 包装数据可以使 MVC 正确处理 JSON。

【讨论】:

以上是关于在select2 jquery插件的数据部分传递一个数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在JQuery数据库CellEdit上集成Select2插件?

在 PHP 中,如何使用 select2(Jquery 插件)显示选定的值

在select2 jquery插件中没有调用initSelection

使用 Ajax 的 jQuery Select2 插件

Select2插件ajax方式加载数据并刷新页面数据回显

select2 jQuery插件:获取所选选项的文本值? [复制]