jquery自动完成不筛选并显示所有结果

jquery自动完成不筛选并显示所有结果,jquery,json,autocomplete,asp.net-mvc-5,Jquery,Json,Autocomplete,Asp.net Mvc 5,我有一个简单的JsonResult操作,需要根据名称进行过滤,如果不存在,则将名称添加到数据库中。然而,我的自动完成结果只是让我在输入两个字母后得到表中的所有列表,忽略我的输入, 我的代码: public JsonResult GetSubjectsName(string term) { var results = db.Subject.Where(s => term == null || s.SubjectName.ToLower().Con

我有一个简单的JsonResult操作,需要根据名称进行过滤,如果不存在,则将名称添加到数据库中。然而,我的自动完成结果只是让我在输入两个字母后得到表中的所有列表,忽略我的输入, 我的代码:

   public JsonResult GetSubjectsName(string term)
    {
        var results = db.Subject.Where(s => term == null ||
        s.SubjectName.ToLower().Contains(term.ToLower())).Select(x => new
        { id = x.SubjectId, value = x.SubjectName  }).Distinct().ToList();
        return Json(results, JsonRequestBehavior.AllowGet);
    }
<script type="text/javascript">
   $("#term").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "GetSubjectsName",
                data: "{'keywords': '" + request.term + "' }",
                dataType: 'json',
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function (data) { return data; },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.value,
                            value: item.value,
                            id: item.id,
                        }
                    }))
                }
            });
        },
        minLength: 2,
    });
public JsonResult GetSubjectsName(字符串术语)
{
var results=db.Subject.Where(s=>term==null||
s、 SubjectName.ToLower()包含(term.ToLower())。选择(x=>new
{id=x.SubjectId,value=x.SubjectName}).Distinct().ToList();
返回Json(结果,JsonRequestBehavior.AllowGet);
}
$(“#术语”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“GetSubjectsName”,
数据:“{'keywords':'”+request.term+“}”,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
dataFilter:函数(数据){返回数据;},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{
标签:item.value,
值:item.value,
id:item.id,
}
}))
}
});
},
最小长度:2,
});

以上代码的问题是您的操作
GetSubjectsName
使用了一个名为
term
的参数,但在传入ajax时,您将参数作为
'keywords'
传递,因此将代码更改为

<script type="text/javascript">
$(document).ready(function () {
      $("#term").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "GetSubjectsName",
                data: { term: request.term },
                dataType: 'json',
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function (data) { return data; },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.value,
                            value: item.value,
                            id: item.id,
                        }
                    }))
                }
            });
        },
        minLength: 2,
    });

});
</script>

$(文档).ready(函数(){
$(“#术语”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“GetSubjectsName”,
数据:{term:request.term},
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
dataFilter:函数(数据){返回数据;},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{
标签:item.value,
值:item.value,
id:item.id,
}
}))
}
});
},
最小长度:2,
});
});

上述代码的问题是您的操作
GetSubjectsName
使用了一个名为
term
的参数,但在传入ajax时,您将该参数作为
“关键字”
传递,因此将代码更改为

<script type="text/javascript">
$(document).ready(function () {
      $("#term").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "GetSubjectsName",
                data: { term: request.term },
                dataType: 'json',
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function (data) { return data; },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.value,
                            value: item.value,
                            id: item.id,
                        }
                    }))
                }
            });
        },
        minLength: 2,
    });

});
</script>

$(文档).ready(函数(){
$(“#术语”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“GetSubjectsName”,
数据:{term:request.term},
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
dataFilter:函数(数据){返回数据;},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{
标签:item.value,
值:item.value,
id:item.id,
}
}))
}
});
},
最小长度:2,
});
});

请格式化您的问题。请格式化您的问题。