何よりもまず、一人で開始するわけではありませんが、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 の正確な意味は何ですか? Web で見たほとんどの例にはこれが含まれていたので、必要だと思いましたが、まだよくわかりません。