首页 > 解决方案 > 剑道 UI 不加载数据

问题描述

我正在使用 Kendo UI(Telerik UI for ASP.NET MVC R3 2018)并尝试将数据加载到其中,但网格似乎只显示没有数据的标题列。我也尝试过调试,但我不知道问题出在哪里。我也试过这个线程 ,但它并没有解决我的问题。以下是我所做的,我希望网格能够显示数据。

模型

public partial class PlacementType
{
    public byte Id { get; set; }

    [Display(Name = "Placement Name")]
    public string PlacementName { get; set; }

    [DataType(DataType.Date)]
    [Display(Name = "Date Created")]
    public DateTime? DateCreated { get; set; }

    [Display(Name = "Created By")]
    public string CreatedBy { get; set; }

    public string Description{get; set;}
 }

看法

@(Html.Kendo().Grid<PlacementType>()
    .Name("Grid")
    .Columns(columns =>
        {
            columns.Bound(c => c.PlacementName);
            columns.Bound(c => c.DateCreated);
            columns.Bound(c => c.CreatedBy);
            columns.Bound(c => c.Description);
        }
    )
    .HtmlAttributes(new { style = "height: 550px;" })
    .Scrollable()
    .Groupable()
    .Sortable()
    .Pageable(pageable => pageable.Refresh(true).PageSizes(true))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("Index", "PlacementType"))
        .PageSize(20)
    )
)

控制器动作

 public ActionResult Index()
 {
     List<PlacementType> types = db.PlacementTypes.ToList();
     return View(types);
 }

标签: asp.net-mvckendo-gridkendo-asp.net-mvckendo-ui-grid

解决方案


你的控制器应该有一个返回Json结果的方法。

例如

public JsonResult GetPlacementTypes()
{
     var types = db.PlacementTypes.ToList();
     return Json(types, JsonRequestBehavior.AllowGet);
}

并更新您的视图以使用此方法。(假设您的控制器名为“PlacementTypeController”)

.Read(read => read.Action("GetPlacementTypes", "PlacementType"))

推荐阅读