【发布时间】:2020-01-24 22:52:03
【问题描述】:
我正在尝试使用带有 ajax 调用的 select2 多选来检索数据并根据用户输入进行过滤,但是当它到达控制器时,参数为空。不幸的是(我认为因为它是自定义的 select2 api)我不能在 ajax 调用中放置一个 chrome 断点来弄乱它,但是 URL 在网络选项卡上看起来很好。现在,ajax 调用的编写方式略有不同,因为我一直在尝试不同的解决方案;都不行。
我也试过这个帖子,他说它有效,但对我来说没有骰子: jquery-select2 always sends null params in controller
$(".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);
}
【问题讨论】:
标签: c# jquery .net asp.net-mvc jquery-select2