我的视图中有一个字段,它是一个文本框字段。但是我想将该字段更改为“自动完成”下拉列表。
以下是我的观点:
@Html.TextBoxFor(model => model.SearchFilterPaymentCode, new { @class = "form-control", @id = "searchInput1" })
@Html.HiddenFor(model => model.ID)
<script>
$(document).ready(function () {
$("#searchInput1").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("getJenisPembayaran", "Payment1")',
dataType: "json",
data: {
term: request.term
},
success: function (data) {
response($.map(data, function (val, item) {
return {
label: val.Name,
value: val.Name,
ID: val.ID
}
}))
}
})
},
select: function (event, ui) {
$("#ID").val(ui.item.ID);
$("#SearchFilterPaymentCode").val(ui.item.label);
}
});
})
</script>
下面是我的控制器
public JsonResult getJenisPembayaran(string term)
{
var objCustomerlist = db.ParamJenisPembayarans.Where(x => x.Name.ToUpper()
.Contains(term.ToUpper()))
.Select(x => new ParamJenisPembayaranViewModel
{
ID = x.ID,
JenisPembayaran = x.Name
}).Distinct().ToList();
return Json(objCustomerlist, JsonRequestBehavior.AllowGet);
}
当我调试控制器并用几个词填充文本框时,我从数据库中获取了一些数据,这意味着控制器运行良好,但数据未出现在视图中。我的代码有什么问题?