【问题标题】:Ajax Binding a Kendo Grid with Asp.Net MVC doesn't display anythingAjax 使用 Asp.Net MVC 绑定剑道网格不显示任何内容
【发布时间】:2014-03-30 02:00:05
【问题描述】:

我正在尝试将 Kendo Grid 与 Asp.Net MVC 绑定。我在带有许多其他字段的详细信息页面视图中显示该网格... 记录正确显示,但网格中未显示任何内容。

这是视图的用户控件 (ascx) 中的 Grid 代码:

<% Html.Kendo().Grid<Web.Areas.WorkOrder.ViewModels.PartListViewModel>()
  .Name("Grid")
  .Columns(columns =>
  {
   columns.Bound(p => p.GlassType);
   columns.Bound(p => p.WorkType);
   columns.Bound(p => p.PartNumber);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetPartListInfo", "Claim", new { id = Model.JobId }))
.PageSize(5)
.ServerOperation(false)
)
 .Pageable()
 .Sortable()
 .Groupable()
 .Filterable()
 .Render();                                  
%>

模型视图如下所示:

    public IEnumerable<PartListViewModel> PartList { get; set; }
    public string VIN { get; set; }
    public string Invoice { get; set; }
    public string MileageKM { get; set; }
    public EntityModel Provider { get; set; }
    public string Comments { get; set; }
    …etc, etc

这是来自我的控制器的代码:

public ActionResult GetPartListInfo([DataSourceRequest] DataSourceRequest request, string id)
    {
        XrmServiceContext xrmServiceContext = new XrmServiceContext();
        workorder workOrder = xrmServiceContext.workorderSet.Where(i => i.Id == new Guid(id)).FirstOrDefault();

        IEnumerable<PartListViewModel> parts = (xrmServiceContext.workorderproductSet.Where(prod => prod.WorkOrder.Id == workOrder.Id))
            .Select(x => new PartListViewModel
            {
                WOId = id,
                Id = x.f1_Product.Id.ToString(),
                Quantity = 3,
                PartNumber = "WS",,                    
                WorkType = "Repair", 
                GlassType = "Windshield",
                Price = 133
            }).ToList();

        return Json(parts.ToDataSourceResult(request));
    }

我的配置中是否缺少某些内容?我想知道它出了什么问题? 感谢您提供的任何帮助。

【问题讨论】:

  • 您确定记录正确吗?您浏览器的网络选项卡中的情况是什么?该特定 Ajax 请求的确切响应是什么?
  • 是的,我是,记录是正确的。当我只返回带有第二个参数 JsonRequestBehavior.AllowGet 的 Json 数据时,会显示 JSON 格式的数据。

标签: asp.net ajax binding kendo-ui kendo-grid


【解决方案1】:

尝试添加这个以允许获取:

return Json(parts.ToDataSourceResult(request),JsonRequestBehavior.AllowGet);

【讨论】:

  • 谢谢,现在可以了,但我还添加了一个新的 DataSourceResult 实例,并将 Data 和 Total 属性设置为已处理的数据和记录总数。
  • 您好,您能回答我面临的这个问题吗stackoverflow.com/questions/44276293/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多