从控制器绑定kendo-ui网格



我正在使用Kendo-ui JQuery版本,我正试图从ApiController填充Kendo-ui网格。我的网格仍然是空的……我错过了什么?

这是我的ApiController的结果:~/api/nations:

[{"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>

谢谢你的帮助。

在我的API调用从剑道数据源,我总是必须指定它是一个json返回数据类型,我认为它默认为json。

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
}),

Kendo Grid没有以正确的格式获得Json。请确保使用KendoMVC DataSourceRequest对象以正确的格式返回数据供网格使用。

下面是一个例子:

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

查看Kendo MVC的演示页面以获得更多示例:http://demos.telerik.com/aspnet-mvc/grid/index

最新更新