2016-09-21 12 views
1

剣道UIグリッドMVCを.netコアで動作させ、PostgreSQLデータベースからデータを読み込もうとしています。剣道UIグリッドが.netコアで動作しない

私はプロジェクトをセットアップし、データベースに接続し、適切なビューを持つスキャフォールドコントローラを使用しました。これは正常に動作しています(CRUD操作は正常に動作しています)。 今私は剣道にそれを取り入れたいと思っています。 私はkendo websiteからのガイドに従って、正常にインストールされました(しかし、ナゲットでプロバージョンを提供していなかったので、試用版をインストールしなければなりませんでしたか?)。 kendo.cshtml

@(Html.Kendo().Grid<Category>() 
.Name("grid") 
.Columns(columns => 
{ 
    columns.Bound(c => c.Id).Title("id"); 
    columns.Bound(c => c.Name); 
}) 
.HtmlAttributes(new { style = "height: 550px;" }) 
.Scrollable() 
.Groupable() 
.Sortable() 
.Pageable(pageable => pageable 
    .Refresh(true) 
    .PageSizes(true) 
    .ButtonCount(5)) 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .Read(read => read.Action("Categories_Read", "Categories")) 
    .PageSize(20) 
) 

 public ActionResult kendo() 
    { 
     return View(); 
    } 

    // GET for Kendo 
    public ActionResult Categories_Read([DataSourceRequest] DataSourceRequest request) 
    { 
     return Json(GetCategories().ToDataSourceResult(request)); 
    } 

    public static IEnumerable<Category> GetCategories() 
    { 
     var result = from c in _context.Categories 
        select new Category() 
        { 
         Id = c.Id, 
         Name = c.Name 
        }; 

     return result; 
    } 

これは私のコードである

モデルはシンプル

です:私は、これは、コントローラでは私のコードである_Layout.cshtml

にすべてのそれらのCSS/JSファイルを追加しました

public class Category 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

剣道のグリッドに表示されるデータがないという問題があります。私は、デバッガでは、前方への要求と後方へのデータがあるが、グリッドには何も表示されていないことがわかります。

答えて

2

この問題は、おそらくnew ASP.NET Core serialization mechanismが原因で発生しています。テキストエディタ(IDE)を使用して、

http://docs.telerik.com/kendo-ui/aspnet-mvc/mvc-core/getting-started

ステップ4を開きStartup.csと下記のようにそれを更新します。ここでは「第二の」ステップ4のガイドラインに従ってください。

ConfigureServicesメソッドを探し、最後にservices.AddKendoの呼び出しを追加します。

public void ConfigureServices(IServiceCollection services) 
{ 
    ... 
    // Maintain property names during serialization. See: 
    // https://github.com/aspnet/Announcements/issues/194 
    services 
     .AddMvc() 
     .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 

    // Add Kendo UI services to the services container 
    services.AddKendo(); 
} 

の設定方法を見つけて、最後にapp.UseKendoへの呼び出しを追加します。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    ... 

    // Configure Kendo UI 
    app.UseKendo(env); 
} 

、上記構成が適用されていることを確認し、サーバの応答をチェックし、それがデータと合計以下の構造と文字のケーシングを有しているかどうかを確認するために、UPDATE

{ 
    "Data": [ 
     { "Id": "1", "Name": "Name 1" }, 
     { "Id": "2", "Name": "Name 2" } 
    ], 
    "Total": "2" 
} 
+1

ありがとう、私はその1つの線を逃した '.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());' –

関連する問題