2

MVC コントローラーに次のコードがあります。

public JsonResult ARequest()
{
    Dictionary<string, object> AnObject = new Dictionary<string,object>();
    AnObject["foo"] = new object[] {"item 1", "item 2", "item 3"};
    return Json(AnObject, JsonRequestBehavior.AllowGet);
}

そして、期待どおりに機能します。ブラウザーから呼び出すと、次の JSON オブジェクトを取得します。

{"foo":["item 1","item 2","item 3"]}

今回は Kendo UI Autocomplete Widget を含む別のファイルがあります。コードは次のとおりです。

<input id="products" style="width: 250px" />

/*...*/

$("#products").kendoAutoComplete({
   filter: "contains",
   minLength: 3,
   dataTextField: foo,
   dataSource: {
      type: "odata",
      pageSize: 10,
      transport: {
         read: {
            url: "education-portal/ARequest"
         }
      }
   }
});

公式の例に従ってhereおよびhere

問題は、ページをロードしても何も得られないことです。オートコンプリートは空白で、空白のままです。ボックスに何か入力しても結果が表示されません。何がうまくいかなかったのですか?一生見えない。

4

2 に答える 2

6

いくつかの問題があります:

  • dataTextField値の配列はオブジェクトではなくstrings.
  • 受信したデータのどこに実際にアイテムの配列があるかを言う必要があります。
  • type odataまたは JSON ですか?

次のようになります。

$("#products").kendoAutoComplete({
    filter: "contains",
    minLength: 3,
    dataSource: {
        type: "json",
        pageSize: 10,
        transport: {
            read: {
                url: "education-portal/ARequest"
            },
            schema : {
                data: "foo"
            }
        }
    }
});

ここでの例: http://jsfiddle.net/OnaBai/rSjpS/

于 2014-03-08T00:16:54.363 に答える