telerik asp.net 核心网格不显示返回的数据

telerik asp.net core grid not displaying returned data

这应该是一个简单的解决方案,但我已经折腾了2个小时。

我在这里定义了一个 telerik 网格:

  @(Html.Kendo().Grid<Models.LOB.RebateAssignedUpc>
                        ().Name("gridCustomers")
                        .Columns(c =>
                        {
                            c.Bound(e => e.Id).Title("Id");
                            c.Bound(e => e.Upc).Title("UPC");

                        })
                        .Groupable()
                  .DataSource(source =>
                  {
                      source.Custom()
                      .Transport(transport =>
                      {
                          transport.Read("GetUPCs", "Upc2");
                      });

                  })
    )  

它正在调用控制器中的这个方法,我已经验证它被调用并正在获取数据:

public ActionResult GetUPCs()
    {
        List<RebateAssignedUpc> upcDetails = db.RebateAssignedUpc.ToList();

        var result = db.RebateAssignedUpc.Select(x => new
        {
           x.Id,
           x.Upc
        }).ToList();

        var output = JsonConvert.SerializeObject(result);

        return Json(output);

    }

网格显示但没有数据,它确实有列并且正在显示按部分分组。 在控制器中使用断点,输出显示:

"[{\"Id\":1,\"Upc\":\"12345\"},{\"Id\":2,\"Upc\":\" 12346\"},{\"Id\":5,\"Upc\":\"12345\"}]"

我使用 f12 验证控制器正在将此数据返回给浏览器:

"[{\"Id\":1,\"Upc\":\"12345\"},{\"Id\":2,\"Upc\":\" 12346\"},{\"Id\":5,\"Upc\":\"12345\"}]"

我也试过手动这样做:

 List<RebateAssignedUpc> upc = new List<RebateAssignedUpc>{
               new RebateAssignedUpc{Id = 1, Upc = "1234"}

               };

        string jsonString = JsonConvert.SerializeObject(upc);

        return Json(jsonString);

我一开始定义的grid有误,还需要提供Schema数据

  @(Html.Kendo().Grid<WebPortal.Controllers.upcReturnData>().Name("gridCustomers")
                                                 .Columns(
                                    c =>
                                    {
                                        c.Bound(e => e.upc).Title("UPC");

                                    })
                                    .Scrollable()
                                    .Resizable(resize => resize.Columns(true))
                                    .DataSource(source =>
                                    {
                                        source.Custom()
                                        .Transport(transport =>
                                        {
                                            transport.Read("GetUPCs", "upc2");
                                        }).Schema(schema =>
                                        {
                                            schema.Data("dataReturned");

                                        });
                                    })

定义网格时使用的控制器和upcReturnedData的部分class:

 public ActionResult GetUPCs()
        {
           // List<upcReturnData> upcDetails = db.RebateAssignedUpc.ToList();

            var result = db.RebateAssignedUpc.Select(x => new
            {
               id= x.Id,
               upc=x.Upc

            }).ToList();


            return Json( new { dataReturned = result });

        }
public partial class upcReturnData
{
    public int id { get; set; }
    public string upc { get; set; }

}