在我的kendo.grid上显示数据有点困难。
json是有效的,它在单击链接时显示为文本,但在网格中加载数据。
这里是来源,任何帮助将不胜感激!
BR。埃罗
控制器

public ActionResult Index([DataSourceRequest]DataSourceRequest  request)
    {
        using (var db = new CimDataContext())
        {
            IQueryable<Customer> customers = db.Customers;
            DataSourceResult result = customers.ToDataSourceResult(request);
            return Json(result, "text/x-json", JsonRequestBehavior.AllowGet);
        }
    }

index.cshtml索引
@(Html.Kendo().Grid<KendoUIMvcCim.Models.Customer>()
  .Name("grid")
  .DataSource(dataSource => dataSource
      .Ajax()
      .Read(read => read.Action("Index", "Customer"))
   )
  .Columns(columns =>
  {
      columns.Bound(customer => customer.Id);
      columns.Bound(customer => customer.Name);
      columns.Bound(customer => customer.Number);
      columns.Bound(customer => customer.AgentID);
      columns.Bound(customer => customer.Info);
      columns.Bound(customer => customer.Email);
      columns.Bound(customer => customer.StartTime);
      columns.Bound(customer => customer.EndTime);
      columns.Bound(customer => customer.Category);
  })
  .Pageable()
  .Sortable()


浏览器上的结果
{"Data":[{"Id":2,"Name":"Name1","Number":"040000000","AgentID":"1","Info":"info1","Email":"email1","StartTime":"\/Date(1360101600000)\/","EndTime":null,"Category":"Laser"},{"Id":3,"Name":"Name2","Number":"0400000000","AgentID":"2","Info":"info2","Email":"email2","StartTime":"\/Date(1360188000000)\/","EndTime":null,"Category":"Kaihi"}],"Total":2,"AggregateResults":null,"Errors":null}

最佳答案

我认为问题在于,您的action方法返回一个json字符串,而您的视图需要一个KendoUIMvcCim.Models.Customer列表。在控制器中使用两种不同的操作方法来解决此问题:
第一个操作返回一个viewResult,它是视图所必需的

public ViewResult Index()
{
  using (var db = new CimDataContext())
  {
    IQueryable<Customer> customers = db.Customers;
    return View(customers);
  }
}

第二个操作返回actionresult,网格需要它通过ajax调用填充它。
public ActionResult Customers_Read([DataSourceRequest]DataSourceRequest request)
{
  using (var db = new CimDataContext())
  {
    IQueryable<Customer> customers = db.Customers;
    DataSourceResult result = customers.ToDataSourceResult(request);
    return Json(result, "text/x-json", JsonRequestBehavior.AllowGet);
  }
}

在index.cshtml文件中,您最终需要更改.Read行,以便在控制器中调用正确的操作方法。
  .DataSource(dataSource => dataSource
      .Ajax()
      .Read(read => read.Action("Customers_Read", "Customer"))
   )

10-06 13:26
查看更多