2012-07-20 75 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

相关问题