kendo核心网格因signalR错误而出错:找不到名为“ read”的客户端方法

时间:2019-06-27 01:22:55

标签: asp.net-core kendo-grid asp.net-core-signalr

我有一个带有Kendo UI Core的.Net Core 2.2服务器和客户端。我可以从客户端获得初始读取结果,以加载由signalR连接的网格,但是当服务器使用SignalR向所有客户端发送消息时,该网格未更新,而是看到警告:

“警告:找不到名称为'read'的客户端方法。”

我在网上浏览了所有示例,包括 https://www.telerik.com/forums/signalr-datasource-with-server-sorting-filtering https://demos.telerik.com/aspnet-core/grid/signalr

我的代码与包括Startup.cs部分在内的相关部分完全匹配。

客户端index.cshtml:

<script src="~/signalr/signalr.js"></script>
<script>
    var url = "https://localhost:44000/hubs/status";
    var hub = new signalR.HubConnectionBuilder()
        .configureLogging(signalR.LogLevel.Information)
        .withUrl(url)
        .build();

    var hubStart = hub.start();
</script>

<div class="signalr-grid-container">

@(Html.Kendo().Grid<Model>
    ()
    .Name("grid")

    .Columns(columns =>
    {
        columns.Bound(c => c.Status).Title("Status"));

    })
    .DataSource(dataSource => dataSource
        .SignalR()
        .AutoSync(true)
        .ServerFiltering(true)
        .ServerPaging(true)
        .ServerSorting(true)
        .PageSize(10)
        .Transport(tr => tr
            .Promise("hubStart")
            .Hub("hub")
            .Client(c => c
                .Read("read") 
            )
            .Server(s => s
                .Read("read")
            )
        )
        .Schema(schema => schema
            .Data("Data")
            .Total("Total")
            .Aggregates("Aggregates")
            .Model(model =>
            {
                model.Id(p => p.ID);
            })
        )
    )
    .Groupable(true)
    .Sortable()
    .Filterable()
    .Pageable(pager => pager.Refresh(true).PageSizes(new int[] { 10, 20, 50, 100 }))

)
</div>

服务器相关代码:

private async Task UpdateUsers()
{
     await _hub.Clients.All.SendAsync("read");
}

服务器端似乎工作正常,我可以逐步了解它正在发送消息。

客户端可能是问题,因为我通过Chrome调试器在客户端收到此错误: “警告:找不到名称为'read'的客户端方法。”

我也感到奇怪的是,数据最初是加载的,但是更新的读取没有被触发。

任何帮助将不胜感激。

0 个答案:

没有答案