select2 向控制器发送空参数
Posted
技术标签:
【中文标题】select2 向控制器发送空参数【英文标题】:select2 sending null params to controller 【发布时间】: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);
【问题讨论】:
【参考方案1】:将查询更改为在控制器中搜索:
public string GetFilterAdvertiser(string search)
【讨论】:
这是解决方案,奇怪的是它不在文档中。谢谢。以上是关于select2 向控制器发送空参数的主要内容,如果未能解决你的问题,请参考以下文章
Yii2:Select2 不使用 jQuery 向控制器发送值
ASP.NET MVC 向 JS 发送类对象的问题 - JS 数组中的空对象