我無法將數據從Web API控制器綁定到Kendo UI網格。不幸的是,我還沒有找到任何這方面的例子。如何將Kendo UI網格綁定到Web API控制器?
這裏的API控制器:
public class FruitController : ApiController
{
public class Fruit
{
public string Name { get; set; }
public string Color { get; set; }
}
public IEnumerable<Fruit> GetFruits()
{
List<Fruit> list = new List<Fruit>();
Fruit f = new Fruit();
f.Name = "Apple";
f.Color = "Red";
list.Add(f);
f = new Fruit();
f.Name = "Kiwi";
f.Color = "Green";
list.Add(f);
return list;
}
}
而在我的.cshtml文件我有:
@model IEnumerable<FruitController.Fruit>
@(Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Color);
})
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetFruits", "api/Fruit").Type(HttpVerbs.Get)
)
)
)
當我運行此,我從控制器成功的JSON響應:
[{「Name」:「Apple」,「Color」:「Red」},{「Name」:「Kiwi」,「Color」:「Green」}]
但是,沒有數據。有什麼明顯的我失蹤?我一直無法弄清楚這一點!
謝謝!
謝謝,將我的APIController方法的返回類型更改爲DataSourceResult允許Grid顯示數據。但是,如果我嘗試使用現在失敗的自動完成控件。那麼這個網格控件不能用於標準的APIController是否正確?當其他客戶端使用它們時,必須將所有APIController結果設置爲DataSourceResult類型似乎是錯誤的。 – Dave 2012-07-23 19:11:31