コントローラーの動作によって例外がスローされることがあります。のは、次のアクションを見てみましょう:に注意する
public ActionResult GetPeople(string term)
{
// the term parameter will contain the search string
// TODO: use the term parameter to filter the results from
// your repository. In this example the result is hardcoded
// to verify that the everything works.
return Json(new[]
{
new { id = "1", label = "label 1", value = "value 1" },
new { id = "2", label = "label 2", value = "value 2" },
new { id = "3", label = "label 3", value = "value 3" },
}, JsonRequestBehavior.AllowGet);
}
物事:コントローラのアクションは、GET動詞(JsonRequestBehavior.AllowGet
)
でアクセス
- コントローラのアクションは、各アイテムが持つJSON配列を返します。 ID、ラベル、および値のプロパティ
- コントローラアクションで例外がスローされない
そして:最後に
$(function() {
$('#txtMovieSearch').autocomplete({
source: '<%= Url.Action("GetPeople") %>',
minLength: 3,
select: function (evt, ui) {
console.log(ui);
}
});
});
そして正確にAJAX要求し、サーバからの応答としてサーバーに送信されたものを分析するためにFireBugを使用しています。
あなたは正しいです!よりシンプルなJSONリターンで動作しました。私のコントローラは、辞書を返します JSONにシリアル化するのに問題がありますか? –
Dofs
私の例を見てください。辞書をシリアライズするのに問題はありませんが、プラグインがレスポンスを理解するのに問題があります。私の例のようにフォーマットする必要があります。したがって、あなたの辞書で簡単な '.Select()'拡張メソッドを使うと、望む結果を得ることができます: 'return Json(dico.Select(x => new {id = x.Key、label = x.Value、value = x.Value})、JsonRequestBehavior.AllowGet); ' –
ありがとうございました! – Dofs