私のクエリに(JSON PATH、WITHOUT_ARRAY_WRAPPER)を使用して返すデータがあります。私はjsonデータを取得するために私のサーバー側(mvcコントローラ)でこのクエリを呼び出すので、私は後でselect2に私のビューで読み込むことができます。select2にリモートデータをロードしてタイトルで検索する方法
私は、私はこのコードをデバッグする場合
public async Task<ActionResult> DisplayMovies()
{
Movies [] movieList = await movieStorage.GetAllMovies();
if(Request.IsAjaxRequest())
{
return Json(movieList, JsonRequestBehavior.AllowGet);
}
else
{
return View();
}
}
は、デバッガに戻りますが、このようにJSON私の映画のコントローラにこのコードを使用:
[{"Title": "Shawshank Redemption", "Director": "Frank Darabont", "Genre": "Drama", "ReleaseYear": "1994", "Rating": "9,3"},
{"Title": "Shutter Island", "Director": "Martin Scorsese", "Genre": "Mystery", "ReleaseYear": "2010", "Rating": "8,1"},
{"Title": "Pulp Fiction", "Director": "Quentin Tarantino", "Genre": "Crime", "ReleaseYear": "1994", "Rating": "8,9"}]
これは私の.jsある
var myUrl = '@Url.Action("DisplayMovies", "Movies")';
$('.myMovies').select2( {
placeholder: 'Select movie...' ,
minimumInputLength: 1,
ajax: {
url: myUrl,
dataType: 'json',
data: function (term, page) {
return {
searchTerm: term
};
},
results: function (data, page) {
return {results: data};
}
}
});
およびhtml
<select class="myMovies" multiple="multiple">
</select>
しかし、私が実行すると、chromeまたはfirefoxのコンソールに結果とエラーはありません。
私はそのような静的なものに私の映画のコントローラを変更すると、それが突然動作します:
public async Task<ActionResult> DisplayMovies()
{
var list = new[]
{
new { id = 0, title = "Shawshank Redemption" },
new { id = 1, title = "Shutter Island" },
new { id = 2, title = "Pulp Fiction" },
}.ToList();
if (Request.IsAjaxRequest())
{
Object json = JsonConvert.SerializeObject(list);
return Json(json, JsonRequestBehavior.AllowGet);
}
else
{
return View();
}
}
なぜこの仕事をしてではなく、私は、データベースからデータを取得するとき?エラーはどこですか? jsonがデータベースから正しくないか、それともjsonを表示するためのjavascriptコード - select2ですか?
jsonはあなたのケースでは異なります。あなたは、動作するオブジェクトのように見える匿名オブジェクトを選択しようとしましたか? – Fran
どのような例ですか?私はあなたが何を意味するのか本当に分かっていません@Fran – aiden87