我试图过滤掉我的结果,但无法弄清楚如何设置ajax查询以便与select2下拉列表一起正常工作。从我可以告诉你应该使用数据,但这不是通过我的调用中的值和过滤。
这是我的ajax:
$('#e1').select2({
placeholder: "Select an ingredient...",
minimumInputLength: 2,
ajax: {
url: "../api/IngredientChoices",
data: 'mi',
dataType: "json",
quietMillis: 500,
data: function (term, page) {
return {
q: term,
page_limit: 10,
page: page
};
},
results: function (data, page) {
var more = (page * 10) < data.length;
console.log(more);
console.log(data);
return { results: data, more: more };
},
formatResult: function (post) {
markup = '<strong>' + post.text + '</strong>';
}
}
});
这是我的控制器:
public List<Models.IngredientChoices> Get(string param)
{
var choices = (from i in _context.IngredientItems_View(param)
select new Models.IngredientChoices
{
id = i.ItemID,
text = i.ConcatName,
});
return choices.ToList();
}
ajax调用当前返回所有值。
答案 0 :(得分:0)
你的ajax上有一个重复的成员data:
- 你应该只有一个。
class myparam {
string q ;
int page_limit;
int page;
}
//decorate for JSON
public List<Models.IngredientChoices> Get(myparm param)
{
var choices = (from i in _context.IngredientItems_View(param.q)
答案 1 :(得分:0)
答案正如@jmordyk所说,我的q:
术语与c#中的参数不匹配。我更改了这一行:
public List<Models.IngredientChoices> Get(string param)
是:
public List<Models.IngredientChoices> Get(string q)