Javascript Select2下拉列表中未显示来自服务器的响应

Javascript Select2下拉列表中未显示来自服务器的响应,javascript,json,html,asp.net-mvc-4,Javascript,Json,Html,Asp.net Mvc 4,这是我的ajax,用于在select2下拉列表中显示搜索项。但问题是。我收到服务器响应,但该响应未显示在select2下拉列表中 $('#txtTest').select2({ minimumInputLength: 2, ajax: { url: "/student/list/", dataType: 'json', type: "Get", data: function(query) {

这是我的ajax,用于在
select2
下拉列表中显示搜索项。但问题是。我收到服务器响应,但该响应未显示在
select2
下拉列表中

$('#txtTest').select2({
    minimumInputLength: 2,
    ajax: {
        url: "/student/list/",
        dataType: 'json',
        type: "Get",
        data: function(query) {
            alert(query.term);
            return { q: query.term };
        },
        processResults: function(data,page) {
            console.log(data);               
            return {
                results:data                    
            }
        }
    }
});
控制器

public JsonResult list(string q)
{
    var obj = (from c in db.selects 
               where c.name.ToLower().StartsWith(q.ToLower().Trim())         
               select new
               {
                   Id=c.ID,
                   Text=c.name
               }).ToList();
    return Json(obj, JsonRequestBehavior.AllowGet);
}
在“查看我的隐藏文本”字段中

<input type="hidden"  id="txtTest" class="input-xlarge" data-placeholder="Choose An Option.." /> 

看起来您正在使用Select2 v4。如果是这种情况,则需要将隐藏的输入元素更改为select元素

从:

已替换所有选项的
(包括远程数据)

您可以使用:

<select id="txtTest" class="input-xlarge" data-placeholder="Choose An Option..">
</select>

我已将我的txt字段从更改为不工作…@ShahzadAshraf-您能否确认您正在使用Select2 v4(因为它与以前的版本有很大不同)?另外,你能显示从ajax调用返回的数据是什么样子吗?这是我的服务器响应..当我在输入字段中键入“sh”.[{“Id”:1,“Text”:“shahzad ashraf”},{“Id”:6,“Text”:“shah”}]非常感谢你…兄弟..它工作了..你能解释一下你在processresults中添加的代码吗?@shahzadahraf-如果答案解决了你的问题,您可以单击它旁边的复选标记。
processResults: function(data) {
    return {
        results: $.map(data, function(item) {
            return { id: item.Id, text: item.Text };
        })
    };
}