首先,请不要因为我是一个盲目地完成整个 mvc 项目的菜鸟而开枪,尽管不是一个人开始它。
所以无论如何,我对如何在数据来自数据库表的文本框中实现 jquery ui 自动完成感到完全困惑。
我尝试使用我在互联网上可以找到的东西来做这件事,这是我在我的 jquery 函数中提出的:
$(function (){
$("#autoCompleteText").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
traditional: true,
dataType: "json",
url: "/Service/jsonAutoComplete",
success: function(result) {
response($.map(result.d, function (item){
return {
value: item.ProductName
}
}))
},
minLegth: 2
});
}
});
});
对于我的控制器中的方法,它的外观如下:
public JsonResult jsonAutoComplete(int companyId)
{
JsonResult result = new JsonResult();
Products products = new Products();
products = db.Products.FirstOrDefault(x => x.CompanyId == companyId);
int productId = products.Id;
SelectList select = this._selectFactory.CreateSelectListFromProductsByCompanyId(products.Id, companyId);
result.Data = new { select = select, productId = productId };
return result;
}
我很确定我在这里做错了什么,因为每当我尝试在我的数据库中键入其中一个产品的前 2 个字母时都没有任何反应。
另外, $.map 到底是什么意思?我在网上看到的大多数例子都有这个,所以我认为它是必需的,但我真的不明白。