Я пытаюсь использовать select2 multiselect с вызовом ajax для извлечения данных и фильтрации на основе пользовательского ввода, но когда он попадает в контроллер, параметры равны нулю.К сожалению (я думаю, потому что это custom select2 api) Я не могу поставить точку останова chrome в вызове ajax, чтобы возиться с ней, но URL-адрес выглядит хорошо на вкладке сети.Прямо сейчас вызовы ajax написаны немного по-другому, потому что я пробовал разные решения;ни одна из них не работает.
Я также попробовал этот пост, который, по его словам, работал, но для меня это не игра в кости: jquery-select2 всегда отправляет нулевые параметры в контроллере
$(".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);
}