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)
我正在尝试使用带有 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)