dra*_*tar 3 c# ajax post kendo-grid asp.net-core
在开始之前,我想说 - 我意识到这个问题与本网站上发布和回答的许多其他问题非常相似。我已经通读并尝试了尽可能多的与我的问题相关的解决方案,但到目前为止没有一个奏效。
我试图将数据从我的网页传递到控制器方法。网页非常简单,只需要抓取用户输入的信息并发送出去即可。我正在使用 Telerik 的 Kendo Grid 来绑定和组织我的数据。但是,无论我尝试什么,我的 AJAX 发布请求都不会正确地向前传递参数。使用浏览器的调试器时,我可以看到传递给 AJAX 请求的参数是有效的,但是当它们在控制器方法中遇到我的断点时,它们都为空或默认值。
包含 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"
})
}
Run Code Online (Sandbox Code Playgroud)
控制器方法
[AcceptVerbs("Post")]
public ActionResult SaveData(Accessorial[] accessorials, string comments, bool loadInfoCorrect)
{
// Code removed for brevity
}
Run Code Online (Sandbox Code Playgroud)
我的 Kendo Grid 类型为 Accessorial(第一个控制器方法参数类型),所以我的假设是检索所有当前行的集合应该返回该模型的数组。即便如此,“comments”也是一个字符串,但只会作为空值传递给控制器方法。
我是 ASP.NET Core 和 Kendo 的新手,所以我确信我遗漏了一些明显的东西。任何帮助,将不胜感激!
我感谢所有的回应!通过将 AJAX 数据类型更改为“文本”并直接将 JSON 传递给反序列化服务器端,我终于能够在我的控制器中看到有效数据。出于某种原因,这是迄今为止我能够完成这项工作的唯一方法。
AJAX POST 调用
function saveShiftDataToServer() {
var grid = $("#accessorialGrid").data("kendoGrid");
var dataSource = grid.dataSource;
var allData = dataSource.data();
var shiftOverview = {
ShiftId: 0,
UserName: "test",
ShiftDate: null,
LoadList: null,
AccessorialList: allData,
LoadInfoCorrect: true,
Comments: ""
};
var jsonData = JSON.stringify(shiftOverview);
$.ajax({
type: "POST",
url: '/Home/SaveData',
data: { json: jsonData },
datatype: "text",
success: function (response) {
alert("111");
}
})
}
Run Code Online (Sandbox Code Playgroud)
控制器方法
[AcceptVerbs("Post")]
public ActionResult SaveData(string json)
{
JsonConvert.DeserializeObject<ShiftOverview>(json); // This produces an object with valid data!
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6001 次 |
| 最近记录: |