I'm having trouble binding data from a Web API Controller to a Grid. Unfortunately I haven't been able to find any examples of this.
Here's the API Controller:
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;
}
}
And in my .cshtml file I have:
@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)
)
)
)
When I run this, I get a successful JSON response from the controller (seen via Chrome):
[{"Name":"Apple","Color":"Red"},{"Name":"Kiwi","Color":"Green"}]
But the grid has no data in it. Is there something obvious I am missing? I haven't been able to figure this out!
Thanks!