ajax - 使用 ajax 在 ASP.NET MVC 中发布数据时,数据为空
问题描述
在调试 MVCcontroller 时,eventDetails 的所有属性都为空,尽管从客户端这些属性都有值
阿贾克斯调用
$.ajax({
type: "POST",
url: "/Home/schedule",
data: {
EventDetailsId: 1,
Location: scheduleData.location,
EventName: scheduleData.title
},
contentType: 'application/json',
success: function (data) {
alert(data);
},
error: function () {
alert("Error occured!!")
}
});
EventDetails 类
public class EventDetails
{
public int EventDetailsId{ get; set; }
public string Location { get; set; }
public string EventName { get; set; }
}
发布电话
[HttpPost]
public JsonResult Schedule(EventDetails eventDetails)
{
return Json(new { status = true });
}
解决方案
当您的输入是复杂类型时,服务器期望接收一个 json 格式并将其反序列化为定义的对象类型,在这种情况下您必须满足服务器的期望。更改您的 javascript 代码,如下所示:
var arr = {
'EventDetailsId': 1,
'Location': scheduleData.location,
'EventName': scheduleData.title
};
$.ajax({
type: "POST",
url: "/Home/schedule",
data: JSON.stringify(arr),
contentType: 'application/json',
success: function (data) {
alert(data);
},
error: function () {
alert("Error occured!!")
}
});
推荐阅读
- docker - 运行 Meteor.js。“第一次跑步”是什么意思?
- mysql - 如何在restful api mysql中请求多个字段
- vue.js - vue-cli 如何从组件构建一个库并导入它?
- reactjs - 未经身份验证用户的反应路由器
- java - 使用 Java8 Stream API 合并两个 hashmap 列表
- java - 将指向 ArrayList 的 LinkedList 的指针转换为 String
- .net - 构建 dotnet vuejs 模板时出现“未知浏览器查询”错误
- javascript - 如何在悬停表格行上显示各个表格单元格的内容?
- javascript - 如果变量是数组、字符串、数字,则签入模板
- swift - swift中具有多个参数的函数