WebApiコントローラーを使用してIDictionaryをjQueryオートコンプリートに次のように返します。
public IDictionary<int, string> GetClientAuto(string term)
{
var clients = db.Clients.Where(n => n.Name.Contains(term)).OrderBy(n => n.Name);
return clients.ToDictionary(n => n.ClientID, n => n.Name);
}
問題は、ブレークポイントを追加し、変数clientsが名前で並べ替えられていることを確認してもtrueになることですが、オートコンプリートボックスに表示される順序が異なり、おそらくIDで予想されます。これをオートコンプリートに追加しようとしました:sortResults:falseですが、効果がありません。
私はこれをsucces関数に持っていますが、ラベルで機能する順序、つまり名前を変更する必要があるかもしれません。
success: function (json) {
// call autocomplete callback method with results
response($.map(json, function (name, val) {
return {
label: name,
value: val
}
}));
},