2012-07-20 93 views
3

我無法將數據從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」}]

但是,沒有數據。有什麼明顯的我失蹤?我一直無法弄清楚這一點!

謝謝!

回答

1

看看這個例子,它期望一個DataSourceResult。在你的控制器中包含一個類似這樣的方法,那麼它就可以工作。

我正在尋找創建一個帶有postsharp的方面,它會引入Kendo所需的控制器類中的create/update/delete方法。

using Kendo.Mvc.Extensions; 

    public DataSourceResult Read([DataSourceRequest] DataSourceRequest request) 
     { 
      return this.Get().ToDataSourceResult(request); 
     } 

我認爲它實際上是奇怪的是劍道不會爲API控制器類爲此提供一個屬性/方面,但也許我失去了一些東西..

+2

謝謝,將我的APIController方法的返回類型更改爲DataSourceResult允許Grid顯示數據。但是,如果我嘗試使用現在失敗的自動完成控件。那麼這個網格控件不能用於標準的APIController是否正確?當其他客戶端使用它們時,必須將所有APIController結果設置爲DataSourceResult類型似乎是錯誤的。 – Dave 2012-07-23 19:11:31

1

Here關於這個問題的完整教程。希望它有幫助

+0

這完全不是你如何在MVC中做到這一點...... – 2014-04-15 00:37:54

+0

我已經使用了Kendo工具,就像那個教程之後的兩年前一樣。這是更多的JavaScript導向,這是真的。 – coffekid 2014-04-17 19:59:22

1

我也有麻煩讓劍道工作的API控制器。對我而言,它從using Kendo.Mvc.Extensions切換到using Kendo.DynamicLinq

在我的劍道數據源中,我刪除了神祕線type: aspnetmvc-ajaxparameterMap

相關問題