【发布时间】:2019-02-27 16:59:53
【问题描述】:
在开始之前,我想说 - 我意识到这个问题与本网站上发布和回答的许多其他问题非常相似。我已通读并尝试了尽可能多的与我的问题相关的解决方案,但到目前为止都没有奏效。
我正在尝试将数据从我的网页传递到控制器方法。网页非常简单,只需要捕获用户输入的信息并发送出去。我正在使用 Telerik 的 Kendo Grid 来绑定和组织我的数据。但是,无论我尝试什么,我的 AJAX 发布请求都不会正确传递参数。使用浏览器的调试器时,我可以看到传递给 AJAX 请求的参数是有效的,但是当它们在控制器方法中到达我的断点时,它们都是 null 或默认值。
包含 AJAX 请求的函数
function saveShiftDataToServer() {
var grid = $("#myGrid").data("kendoGrid");
var dataSource = grid.dataSource;
var allData = dataSource.data();
var comments = '@Model.Comments';
var loadInfoCorrect = '@Model.LoadInfoCorrect';
$.ajax({
type: "POST",
url: '/Home/SaveData',
data: JSON.stringify({ accessorials: allData, comments: comments, loadInfoCorrect: loadInfoCorrect }),
contentType: "application/json; charset=utf-8",
datatype: "json"
})
}
控制器方法
[AcceptVerbs("Post")]
public ActionResult SaveData(Accessorial[] accessorials, string comments, bool loadInfoCorrect)
{
// Code removed for brevity
}
我的 Kendo Grid 被键入为 Accessorial(第一个控制器方法参数类型),所以我的假设是检索所有当前行的集合应该返回该模型的数组。即便如此,“cmets”是一个字符串,但只会作为 null 传递给控制器方法。
我是 ASP.NET Core 和 Kendo 的新手,所以我确信我缺少一些明显的东西。任何帮助将不胜感激!
【问题讨论】:
标签: c# ajax post asp.net-core kendo-grid