AJAX POST模型为空

时间:2017-12-21 19:05:06

标签: javascript jquery ajax asp.net-mvc asp.net-ajax

我在使用Ajax发布请求传递模型时遇到问题。

将值传递到下面的Javascript函数中,将变量转换为JSON字符串并发送到控制器方法。

在Chrome中使用开发工具时,我可以看到数据正在按预期发送。

问题是控制器中对象参数的属性都是0.为什么会发生这种情况?如何解决?

示例数据

EventID = 419656

EventStart = 2017年12月5日星期二10:00:00 GMT + 0000

EventEnd = Tue Dec 05 2017 11:00:00 GMT + 0000

的JavaScript

function UpdateEvent(EventID, EventStart, EventEnd) {

    alert(EventID);

    $.ajax({
        type: 'POST',
        url: "/Calendar/UpdateEvent",
        contentType: "application/json",
        data: JSON.stringify({
            Id: EventID,
            NewEventStart: EventStart,
            NewEventEnd: EventEnd
        })
    });
}

模型

public class UpdateAppt
{
    public int Id { get; set; }
    public DateTime NewEventStart { get; set; }
    public DateTime NewEventEnd { get; set; }
}

控制器

[RoutePrefix("Calendar"), Route("{action=index}")]
public class CalendarController : Controller
{

    public void UpdateEvent(UpdateAppt updateModel )
    {
    }

}

1 个答案:

答案 0 :(得分:0)

你有没有试过像:

var model = {ID: EventID, 
        NewEventStart: EventStart, 
        NewEventEnd: EventEnd
        };

然后在你的ajax帖子中:

data: JSON.stringify(model),

它可能没有任何区别,但我从未见过:

type: 'POST',

,而

type: "POST",