Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax在ASP.NET MVC中发布数据时,数据为空_Ajax_Asp.net Mvc - Fatal编程技术网

使用ajax在ASP.NET MVC中发布数据时,数据为空

使用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,

调试MVCcontroller时,eventDetails的所有属性都为null,尽管客户端的属性都有值

Ajax调用

  $.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时,您是否碰巧错过了它?这可能就是你所缺少的。