【发布时间】:2020-08-19 23:17:14
【问题描述】:
所以我正在从我的视图中对我的控制器中的一个方法进行ajax 调用,但它一直在发送空参数。我在控制台中打印值,值在那里,正确的但控制器的输入参数为空。
在我看来,这是我的ajax
@model ModelLayer.Models.NotificationModel
@(Html.Kendo().Grid<ModelLayer.Models.TableNotificationModel>()
.Name("successfullData")
.ToolBar(e =>
{
e.Custom().Text("Зачувај").HtmlAttributes(new { id = "customSaveButton", @class = "floatRight" });
})
//code shortened for brevity
$("#successfullData").on("click", "#customSaveButton", function () {
var model = JSON.parse('@Html.Raw(Json.Serialize(Model?.TableNotificationModel))');
var saveType = 1;
console.log("model", model)
console.log("saveType", saveType)
$.ajax({
url: '@Url.Action("SaveFile", "Upload")',
data: model,
saveType: saveType
})
});
我在单击 Kendo 网格按钮时调用该函数并将数据发送到控制器。我在控制台中有正确的数据
但我的控制员却另有说法
模型为空,saveType 为 0。我在这里缺少什么?为什么我发送的是空参数?
【问题讨论】:
-
我认为这里可能存在几个问题。首先你能展示更多的 C# 方法吗?在默认情况下执行 GET 的 AJAX 中,您的控制器将需要匹配相同的 HTTP 动词。如果它们都是 GET,它会将 Model 的内容附加到查询字符串中,并且您不会有一个名为 model 的对象,而是 model 的所有属性
-
请添加您的评论作为答案,我忘记了
ajax中的method属性。我添加了它并发送了正确的参数 - @dbmuller
标签: javascript c# ajax