select2 向控制器发送空参数

select2 sending null params to controller

我正在尝试使用带有 ajax 调用的 select2 多选来检索数据并根据用户输入进行过滤,但是当它到达控制器时,参数为空。不幸的是(我想因为它是自定义 select2 api)我不能在 ajax 调用中放置一个 chrome 断点来弄乱它,但是 URL 在网络选项卡。现在 ajax 调用的写法略有不同,因为我一直在尝试不同的解决方案;都不起作用。

我也试过这个 post,他说这很管用,但对我来说不行:

$(".filter-agencies").select2({
            //data: agencies,
            ajax: {
                cache: false,
                datatype: 'JSON',
                type: 'GET',
                url: 'Home/GetFilterAgency',
                data: function (params) {
                    return {q:params}
                },
                processResults: function (data) {
                    return {
                        results: data
                    }
                }
            },
            placeholder: 'Agencies',
            width: '150',
            multiple: true,
            closeOnSelect: false,
            minimumInputLength: 4
            ////tags: true
        });

         $(".filter-advertisers").select2({
            //data: filterSelect,
            ajax: {
                url: 'Home/GetFilterAdvertiser',
                data: function (params) {
                    var query = {
                        search: params.term
                    }
                    return query
                },
                processResults: function (data) {
                    //advertisers = $.map(data, function (obj) {
                    //    obj = { id: i, text: obj }

                    //    i = i + 1;
                    //    return obj
                    //})
                    return {
                        results: data
                    }
                }
            },
            placeholder: 'Advertisers',
            closeOnSelect: false,
            minimumInputLength: 4,
            allowClear: true,
            width: '150',
            multiple: true
        });



        [HttpGet]
        public string GetFilterAdvertiser(string query)
        {
            var x = _orderedLinesProcessor.GetFilterAdvertiser();
            var i = 0;
            var dict = new Dictionary<int, string>();
            foreach (var el in x)
            {
                dict.Add(i, el);
                i += 1;
            }

            return JsonConvert.SerializeObject(dict);
        }

更改查询以在控制器中搜索:

public string GetFilterAdvertiser(string search)