【发布时间】:2016-07-15 13:16:42
【问题描述】:
我有这个带有 json 结果的简单自动完成功能,但它不断从我的数据库表中获取所有数据,而不是根据输入到搜索框中的搜索词获取数据
jQuery
$(document).ready(function () {
$("#searchTerm").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("FindSubjectsName", "Profile")',
//data: "{'searchTerm': '" + request.searchTerm + "' }",
data: { searchTerm: request.searchTerm },
dataType: 'json',
type: "GET",
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,
});
});
C#
public JsonResult FindSubjectsName(string searchTerm)
{
var results = db.subjects.Where(s => searchTerm == null ||
s.SubjectName.ToLower().Contains(searchTerm.ToLower())).Select(x => new
{ id = x.SubjectId, value = x.SubjectName }).Distinct().ToList();
return Json(results, JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
request.searchTerm 是如何填充的?被传递模型的值是否绑定在控制器中?
-
Bon Macalindong >>public ActionResult UsersReview(string searchTerm) { IEnumerable
viewModel = from review in db.reviews.OrderBy(d => d.Created) .Include(s => s. subject) .Where(r => r.subject.SubjectName.Contains(searchTerm)).Distinct() 等等
标签: jquery json asp.net-mvc autocomplete