【问题标题】:ASP.NET Core , Telerik grid, no data is displayed but controller action returns dataASP.NET Core,Telerik 网格,不显示数据,但控制器操作返回数据
【发布时间】:2020-10-21 20:27:47
【问题描述】:

在一个 ASP.NET MVC Core 3 项目中,我有用于 ASP.NET Core 的 Telerik UI。

我已将网格连接到视图,并且控制器操作正在返回数据,但是网格不呈现数据。

我已经订阅了网格上的错误事件,但它不会触发。我也研究过,似乎 .NET Core 处理序列化的方式是骆驼案例和帕斯卡案例之间的问题,所以我的 Startup.cs 有这个:

services.AddControllersWithViews() 
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = null;

但网格不会呈现任何返回的记录。

网格定义:

@(Html.Kendo().Grid<Web.Models.DemoQueueViewModel>().Name("grid")
    .Columns(columns =>
    {
        columns.Bound(c => c.FirstName);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Events(events => events.Error("error_handler"))
        .Model(model => 
        { 
            model.Id(p => p.Id);
        })
        .Read("GridRead", "DemoQueue")
    )
)

【问题讨论】:

  • 也放置GridRead方法,因为嵌套或子对象有时不会序列化为JSON格式,这会导致Telerik收到错误的响应。

标签: c# asp.net-core telerik-grid


【解决方案1】:

可能问题与JSON序列化方法有关,使用System.Text.Json方法序列化响应数据时,可能无法序列化复杂对象。

尝试使用Newtonsoft.Json序列化响应数据,通过Nuget安装Microsoft.AspNetCore.Mvc.NewtonsoftJson,然后使用如下代码:

services.AddControllersWithViews().AddNewtonsoftJson();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 2014-05-13
    • 2021-05-19
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多