3

WebAPIコントローラーからKendoUIグリッドにデータをバインドするのに問題があります。残念ながら、私はこれの例を見つけることができませんでした。

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"}]

ただし、グリッドにはデータがありません。私が見逃している明らかなものはありますか?私はこれを理解することができませんでした!

ありがとう!

4

2 に答える 2

1

例を見てください、それはDataSourceResultを期待しています。コントローラにこのようなことを行うメソッドを含めると、それが機能します。

剣道が必要とするコントローラークラスにcreate/update/deleteメソッドを導入するpostsharpを使用してアスペクトを作成することを検討しています。

using Kendo.Mvc.Extensions;

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

剣道がAPIコントローラークラスにこれの属性/アスペクトを提供しないのは実際には奇妙だと思いますが、おそらく私は何かが欠けています。

于 2012-07-22T09:41:22.407 に答える
1

また、剣道をAPIコントローラーで動作させるのに問題がありました。私にとっては、からに切り替えることができましusing Kendo.Mvc.Extensionsusing Kendo.DynamicLinq

剣道のデータソースで、不思議な行type: aspnetmvc-ajaxとを削除しましたparameterMap

于 2015-07-21T13:58:08.910 に答える