【发布时间】:2016-02-06 19:50:12
【问题描述】:
编写的自动完成代码正在从控制器获取结果,并且在浏览器中使用 F12 开发人员网络选项卡时也会显示。但是文本框不显示实际返回的结果,只显示没有值的下拉列表。 我包括视图和控制器的代码。请帮我解决这个问题。
查看页面代码:
<html>
<head><title></title>
<link href="~/Content/themes/base/jquery.ui.autocomplete.css" rel="stylesheet" />
<script type="text/javascript" >
$(document).ready(function () {
alert("hi");
$("#ValueField").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Customer/AutoretrieveCustomer",
type: "POST",
dataType: "json",
data: { term: request.term },
success: function (data) {
var items = $.map(data, function (item) {
return {
label: item.FirstName,
value: item.FirstName
};
});
response(items);
}
})
}
});
});
</script>
</head>
<body>
<div id="CusView">
<label for="FirstName">Enter Customer First name : </label>
Enter value : <input type="text" id="ValueField" />
</div>
</body>
</html>
控制器代码:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult AutoretrieveCustomer(string term)
{
Banking.BankingDBEntities db = new BankingDBEntities();
var suggest = from s in db.Customers
select s.FirstName;
var namelist = suggest.Where(n => n.ToLower().StartsWith(term.ToLower()));
return Json(namelist, JsonRequestBehavior.AllowGet);
}
我还需要获取文本框中用户选定项的 id 的代码。
执行自动完成时的输出图片如下
【问题讨论】:
标签: c# jquery asp.net-mvc autocomplete jquery-ui-autocomplete