Javascript 使用AJAX将基于JSON的远程数据导入Select2

Javascript 使用AJAX将基于JSON的远程数据导入Select2,javascript,jquery,ajax,asp.net-mvc,jquery-select2,Javascript,Jquery,Ajax,Asp.net Mvc,Jquery Select2,目的是将数据从控制器侧导入Select2元素(启用multiselect)。我希望设置看起来像Stack Overflow中的标记框,您可以在其中开始键入标记,选择它,然后选择另一个标记 我一直在使用Select2文档作为参考,但是请求没有发送到控制器 我的代码: $(".jsData").select2({ ajax: { contentType: 'application/json', url: '<%=Url.Action

目的是将数据从
控制器
侧导入
Select2
元素(启用multiselect)。我希望设置看起来像Stack Overflow中的标记框,您可以在其中开始键入标记,选择它,然后选择另一个标记

我一直在使用
Select2
文档作为参考,但是请求没有发送到控制器

我的代码:

$(".jsData").select2({          
    ajax: {
        contentType: 'application/json',
        url: '<%=Url.Action("GetDataMethod","RelevantController")%>',
        type: 'POST',
        dataType: 'json',
        data: function (term) {
            return {
                sSearchTerm: term
            };
        },
        results: function (data) {
            var datajs = $.map(data, function (obj) {
                obj.text = obj.someterm; // desired field,
                obj.id = obj.someId;
                return obj;
            });
            return {
                results: JSON.parse("[" + datajs.split(",") + "]")
            };
        }
    },
    multiple: true         
});
$(“.jsData”)。选择2({
阿贾克斯:{
contentType:'应用程序/json',
url:“”,
键入:“POST”,
数据类型:“json”,
数据:功能(术语){
返回{
任期:任期
};
},
结果:功能(数据){
var datajs=$.map(数据、函数(obj){
obj.text=obj.someterm;//所需字段,
obj.id=obj.someId;
返回obj;
});
返回{
结果:JSON.parse(“[”+datajs.split(“,”+“]))
};
}
},
多重:对
});
我对动态地将数据带到Select2比较陌生,因此非常感谢您的帮助。谢谢

更新:找到解决方案,将其发布到此处供其他人使用

HTML

 <input class="jsData" style="width: 100%"  id="select2Data" ></input>

您正在使用ASPX查看引擎吗?是的,我正在使用ASPX(C#)查看引擎。
              $(".jsData").select2({
                        ajax: {
                            minimumInputLength: 4,
                            contentType: 'application/json',
                            url: '<%=Url.Action("GetData","Controller")%>',
                            type: 'POST',
                            dataType: 'json',
                            data: function (term) {
                                return {
                                    sSearchTerm: term
                                };
                            },
                            results: function (data) {
                                return {
                                    results: $.map(JSON.parse(data), function (item) {
                                        return {
                                            text: item.term,
                                            slug: item.slug,
                                            id: item.Id
                                        }
                                    })
                                };
                            }
                        },
                        multiple: true
                    });