使用ajax在ASP.NET MVC中发布数据时,数据为空
调试MVCcontroller时,eventDetails的所有属性都为null,尽管客户端的属性都有值 Ajax调用使用ajax在ASP.NET MVC中发布数据时,数据为空,ajax,asp.net-mvc,Ajax,Asp.net Mvc,调试MVCcontroller时,eventDetails的所有属性都为null,尽管客户端的属性都有值 Ajax调用 $.ajax({ type: "POST", url: "/Home/schedule", data: { EventDetailsId: 1, Location: scheduleData.location,
$.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!!")
}
});
我添加了[FromBody]属性,并且值不为null
[HttpPost]
public JsonResult Schedule( [FromBody]EventDetails eventDetails)
{
return Json(new { status = true });
}
我最初是这样做的,它是空的,您确定调用了schedule方法吗?你在调试模式下检查了吗?您是否在浏览器中点击F12查看任何可能的错误?是的,没有错误,当它点击schedule方法时,参数值为空。我测试过,它工作正常!你的代码的精确副本@好奇的程序员当您自己尝试JSON.stringify时,您是否碰巧错过了它?这可能就是你所缺少的。