Заполнение сетки кендо со страницы бритвы ASP.NET Core - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть сетка, определенная следующим образом ...

<div id="view">
    <div id="grid" data-role="grid"
        data-editable="false"
        data-columns="[{ 'field': 'Name' }, { 'field': 'Version'}]"
        data-bind="source: releases">
    </div>
</div>

и модель вида, определенная так ...

    var viewmodel = kendo.observable({
        releases: new kendo.data.DataSource({
            schema: {
                model: {
                    id: "Id",
                    fields: {
                        Id: { type: "string" },
                        Name: { type: "string" },
                        Version: { type: "string" },
                        CreatedOn: { type: "datetime" }
                    }
                }
            },
            transport: {
                read: {
                    url: "/Release/Index?handler=List",
                    type: "jsonp"
                }
            }
        })
    });

Когда я пытаюсь визуализировать страницу, элементы управления отображаются, но данных нет, вместо этого я получаю ошибку 400. Более подробная информация рассказывает мне об токенах против подделки и о том, как установить заголовок в моем запросе на публикацию, поэтому я добавляю это в начало моей страницы ....

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf

И я установил заголовок для вызова с помощью токена защиты от подделки, с этим в моем коде на стороне клиента ...

    $(function () {
        const requestVerificationToken = '@Xsrf.GetAndStoreTokens(HttpContext).RequestToken';
        const beforeSend = req => req.setRequestHeader('RequestVerificationToken', requestVerificationToken);
        const grid = $("#grid").getKendoGrid();
        grid.dataSource.transport.options.read.beforeSend = beforeSend;

        grid.data.read();
    });

Теперь, когда я звоню своей странице, я получаю Cannot read property 'read' of undefined.

Все, что я прочитал, говорит о том, что я все делаю правильно!

Что я не делаю?

...