【问题标题】:ASPNet.Core 1.0 RTM Kendo Grid not displaying dataASPNet.Core 1.0 RTM Kendo Grid 不显示数据
【发布时间】:2016-07-01 06:22:40
【问题描述】:

ASPNet Kendo MVC 的新内部版本 (2016.2.630) 似乎不适用于 Kendo Grid。或者至少不会从网格中的读取操作返回 Json。

@(Html.Kendo().Grid<EmployeeModel>()
.Name("grid")
.Columns(columns =>
{
    columns.Bound(p => p.EmployeeID).Visible(false);
    columns.Bound(p => p.Name);
    columns.Bound(p => p.Salary);
})
.Pageable()
.HtmlAttributes(new { style = "height:550px;" })
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(20)
    .Read(read => read.Action("Employees_Read", "Home"))
 )
 .Deferred()

)

这是控制器中的读取操作:

public ActionResult Employees_Read([DataSourceRequest] DataSourceRequest request)
    {
        List<EmployeeModel> employees = new List<EmployeeModel>();
        employees.Add(new EmployeeModel() { EmployeeID = 1, Name = "Peter Pan", Salary = new decimal(23340.35) });
        employees.Add(new EmployeeModel() { EmployeeID = 2, Name = "Little John", Salary = new decimal(25320.45)});
        employees.Add(new EmployeeModel() { EmployeeID = 3, Name = "Tinkerbell", Salary = new decimal(21520.45) });
        employees.Add(new EmployeeModel() { EmployeeID = 4, Name = "Captain Hook", Salary = new decimal(45320.45) });
        var checkResult = employees.ToDataSourceResult(request);
        return Json(checkResult);
    }

使用简单的模型:

public class EmployeeModel
{
    public int EmployeeID { get; set; }
    public string Name { get; set; }
    public decimal Salary { get; set; }
}

网格未显示来自读取操作的数据。 这是自 AspNet.Core 1.0 Core 发布并应用最新版本 2016.2.630 的 Kendo.MVC 以来。

有什么解决方法吗?

【问题讨论】:

    标签: asp.net-mvc kendo-grid


    【解决方案1】:

    这可能是因为 MS 将 RTM 位中的 Json 序列化更改为始终为 pascalCase。 您可以通过添加这样的 json 选项来缓解这种情况:

    改变

    services.AddMvc();
    

    services
            .AddMvc()
            .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
    

    直到 Telerik 更新所有 JavaScript

    来自:https://github.com/telerik/kendo-ui-core/issues/1856

    【讨论】:

    • 如果我在 4 小时前发现了这个,我还会有头发。非常感谢 neodim!
    • 它在设置指南中 (docs.telerik.com/aspnet-core/getting-started/getting-started),但我还是被我发现了。
    • 如果我认识你,我会为你买 100 瓶啤酒 :) 我很惊讶我在设置项目时错过了这一步!!
    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多