Kendo MVC 核心 - 网格 - 无法使用路由获取数据 - 400 错误请求
Kendo MVC Core - Grid - unable to get data with routes - 400 Bad Request
我刚开始一份新合同,虽然我习惯使用 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 错误。
我已经在没有路由的新控制器中尝试了最基本的调用,并按照普通示例进行了尝试,但是我得到了相同的结果。
我找到了我的答案,尽管在黑暗中经过了很多纠结,但 Telerik 自己没有做出任何有用或有价值的回应。
.Read(r => r.Action("RefreshRecommendationGridData", "ReportLookup").Data("sendAntiForgery"))
然后在 javascript
function sendAntiForgery() {
return { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() }
}
我刚开始一份新合同,虽然我习惯使用 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 错误。
我已经在没有路由的新控制器中尝试了最基本的调用,并按照普通示例进行了尝试,但是我得到了相同的结果。
我找到了我的答案,尽管在黑暗中经过了很多纠结,但 Telerik 自己没有做出任何有用或有价值的回应。
.Read(r => r.Action("RefreshRecommendationGridData", "ReportLookup").Data("sendAntiForgery"))
然后在 javascript
function sendAntiForgery() {
return { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() }
}