[英]ASP.Net MVC Jquery UI Autocomplete - list not showing up when I debug
[英]ASP.NET MVC: jQuery UI Autocomplete incorrectly showing all entries
我閱讀了該主題,並研究了錯誤和應該起作用的示例。 此后,我嘗試自己構建它,autcomplete可以工作,但是它總是顯示所有條目,而不是僅顯示與數據庫中搜索匹配的條目。
因此,以下是控制器代碼,該代碼返回了我的自動完成功能的數據:
public JsonResult AutoCompleteCustomer(string suggestion)
{
var data = db.Customers.Where(s => suggestion == null || s.Name.ToLower().Contains(suggestion.ToLower())).Select(x => new { id = x.CustomerID, value = x.CustomerName }).Take(20).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
我的自動完成jQuery UI功能代碼:
<script>
$("#CustomerName").autocomplete({
source: "/Customer/AutoCompleteCustomer",
minLength: 3
})
</script>
視圖中的TextBox應該具有自動完成功能:
@Html.TextBoxFor(m => m.CustomerName)
如果您需要更多代碼或信息,請告訴我,我們將盡快提供。 謝謝!
您的控制器動作的參數名稱錯誤,應為term
:
public JsonResult AutoCompleteCustomer(string term)
{
var data = db.Customers.Where(s => term== null || s.Name.ToLower().Contains(term.ToLower())).Select(x => new { id = x.CustomerID, value = x.CustomerName }).Take(20).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}
因為此刻它是不正確的,所以它將始終為NULL,這就是為什么您的自動完成功能可以正常工作,但始終返回所有結果的原因,因為此條件suggestion == null
始終為true。
如果您真的想堅持suggestion
作為控制器參數,則需要在AJAX配置中明確定義此參數:
<script>
$("#CustomerName").autocomplete({
source: "/Customer/AutoCompleteCustomer",
data: { suggestion: request.term },
minLength: 3
})
</script>
var data = (from Customers in db.Customers Where s.Name.ToLower().Contains(suggestion.ToLower()) select new { id = Customers.CustomerID, value = Customers.CustomerName }).ToList().Take(20);
嘗試這個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.