我刚刚开始了一份新合同,虽然我习惯使用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 Request错误。
我想我错过了一些东西,但是我完全失去了什么。我怀疑它很简单,但是,我在Telerik网站上找不到任何有用的东西。
如果我将其更改为[HttpGet]
,则会返回404错误。
我已经在没有路由的新控制器中尝试了最基本的调用,并且根据一个例子,我得到了相同的结果。
我已经找到了答案,虽然在黑暗中经历了很多困扰,并且没有Telerik自己的使用或有价值的回应。
.Read(r => r.Action("RefreshRecommendationGridData", "ReportLookup").Data("sendAntiForgery"))
然后在javascript中
function sendAntiForgery() {
return { "__RequestVerificationToken": $('input[name=__RequestVerificationToken]').val() }
}