【发布时间】:2018-12-02 12:30:56
【问题描述】:
这应该是一个简单的解决方案,但我已经解决了 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);
【问题讨论】: