小编Joh*_*ell的帖子

如何将Entity Framework 6绑定到KendoUI Grid

我用两个表创建了一个测试SQL Server数据库:WorkItem和WorkItemNote。它们之间有一个外键,因此一个WorkItem可以具有许多WorkItemNote记录。我试图在Kendo网格中显示WorkItems。该Action返回Json,但网格中未显示任何内容。
如果我仅使用要显示的属性创建一个匿名对象,它将起作用。这表示具有关系(WorkItemNote)的实体(WorkItem)无法显示在Kendo网格中。
有没有办法解决?

我的网格:

<div>
    @(Html.Kendo().Grid<TryToLoadGrid.Models.WorkItem>()
        .Name("grid")
        .HtmlAttributes(new { style = "height:380px;" } )
        .Sortable()
        .Pageable()
        .DataSource(dataSource => dataSource.Ajax().Read(read => read.Action("GetActiveWorkItems", "Home")))
        .Columns(columns =>
            {
                columns.Bound(workItem => workItem.Title);
                columns.Bound(workItem => workItem.Description);
            }
        )
    )
</div>
Run Code Online (Sandbox Code Playgroud)

我的动作代码是:

 public ActionResult GetActiveWorkItems([DataSourceRequest]DataSourceRequest request)
 {
     using (TaskManagerContext context = new TaskManagerContext())
     {
         IQueryable<WorkItem> list = context.WorkItems.Where(x => x.IsActive == true);
         DataSourceResult result = list.ToDataSourceResult(request);
         return Json(result);
     }
 }
Run Code Online (Sandbox Code Playgroud)

从“动作”中可以看出,我对网格的WorkItemNotes甚至都不感兴趣。

为了证明这是由于这种关系造成的,我创建了第二个Action,它可以正常工作并显示数据:

  public ActionResult GetActiveWorkItems2([DataSourceRequest]DataSourceRequest request)
  {
      using (TaskManagerContext context = new TaskManagerContext())
      {
          List<WorkItem> …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework kendo-ui kendo-grid

5
推荐指数
1
解决办法
5633
查看次数

标签 统计

.net ×1

c# ×1

entity-framework ×1

kendo-grid ×1

kendo-ui ×1