0

Kendo-ui JQuery バージョンを使用しており、ApiController から kendo-ui グリッドを埋めようとしています。グリッドが空のままです...何が欠けていますか?

これが私の ApiController の結果です: ~/api/Countries :

[{"Id":4,"Name":"Germany"},
 {"Id":5,"Name":"China"},
 {"Id":6,"Name":"Myanmar"}]

これが私のApiControllerコードです:

public class CountriesController : ApiController
{
    private DBContext db = new DBContext();

    // GET api/Countries
    [Queryable]
    public IQueryable<Country> GetCountries()
    {
        return db.Countries;
    }
}

ここに私のcshtmlコードがあります:

<script type='text/javascript'>

    $(document).ready(function () {
        $("#grid").kendoGrid({
            columns: [
                { field: "Id", title: "id" },
                { field: "Name", title: "name" }
            ],
            dataSource: new kendo.data.DataSource({
                transport: {
                    read: "api/Countries"
                },
                schema: {
                    model: {
                        id: "Id",
                        fields: {
                            Id: { type: "number" },
                            Name: { type: "string" }
                        }
                    }
                },
                pageSize: 3
            }),
            pageable: true
        });
    });

</script>

ご協力いただきありがとうございます。

4

2 に答える 2

0

Kendo Grid が Json を正しい形式で取得していません。KendoMVC DataSourceRequest オブジェクトを使用して、グリッドが消費する正しい形式でデータを返すようにしてください。

次に例を示します。

public ActionResult Update([DataSourceRequest] DataSourceRequest request, MyViewModel data)
    {
        var result = UpdateBackend(data);
        return Json(result.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
    }

その他の例については、MVC の Kendo デモ ページをご覧ください: http://demos.telerik.com/aspnet-mvc/grid/index

于 2014-06-13T16:15:27.677 に答える
0

剣道データソースからの API 呼び出しでは、常に json の戻り値の dataType を指定する必要があります。デフォルトは jsonp だと思います。

dataSource: new kendo.data.DataSource({
  transport: {
    read: {
         url: "/api/Countries",
         dataType: 'json'
      }
  },
  schema: {
    model: {
      id: "Id",
      fields: {
        Id: { type: "number" },
        Name: { type: "string" }
      }
    }
  },
  pageSize: 3
}),
于 2014-06-13T17:20:53.260 に答える