Kendo MVC Core - Grid - невозможно получить данные с маршрутами - 400 неверных запросов - PullRequest
1 голос
/ 15 апреля 2019

Я только что заключил новый контракт, и хотя я привык к использованию Kendo, это мой первый опыт использования Kendo Core.

Как правило, у меня был бы мой контроллер и мои действия и привязка к нему с использованием

.DataSource(ds => ds.Read(r => r.Action("RefreshRecommendationGridData", "ReportLookup")))

Однако фирма, в которой я работаю, активно использует маршрутизацию

 [Authorize]
[Route("report-lookups")]
public class ReportLookupController : Controller
{
    [AccessRights("Lists")]
    [HttpPost]
    [Route("report-lesson-recommendations/manage")]
    public async Task<IActionResult> RefreshRecommendationGridData([DataSourceRequest] DataSourceRequest request)
    {
        var result = await _cacheService.SearchForReportLessonRecommendationsAsync(null);
        return Json(result.ToDataSourceResult(request));
    }
}

При попытке этого, просмотре инструментов разработчика и сети, а также при использовании

.DataSource(ds => ds.Read(r => r.Url("manage"))

Я получаю ошибку 400 Bad Reqest.

Полагаю, я что-то упустил, но что это, я в полной растерянности. Я подозреваю, что это что-то довольно простое, однако я не могу найти на сайте Telerik ничего, что могло бы помочь.

Если я изменю это значение на [HttpGet], то это будет возвращено как ошибка 404.

Я пробовал самые простые из вызовов в новом контроллере без маршрутизации и в соответствии с ванильным примером, однако я получаю те же результаты.

1 Ответ

0 голосов
/ 16 апреля 2019

Я нашел свой ответ, хотя и через много спотыканий в темноте, без толку или ценного ответа от самих Telerik.

.Read(r => r.Action("RefreshRecommendationGridData", "ReportLookup").Data("sendAntiForgery"))

, а затем в JavaScript

function sendAntiForgery() {
    return { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() }
}
...