weixin_33694172 2017-12-21 19:05 采纳率: 0%
浏览 19

AJAX POST模型为空

I am having a problem passing a model with an Ajax post request.

Values are passed into the Javascript function below, the variables are converted into a JSON string and sent to the controller method.

When using the Dev Tools in Chrome I can see that the data is being sent as expected.

The problem is that the properties of the object parameter in the controller are all 0. Why is this happening and how can it be fixed?

Example Data

EventID = 419656

EventStart = Tue Dec 05 2017 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
        })
    });
}

Model:

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

Controller:

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

    public void UpdateEvent(UpdateAppt updateModel )
    {
    }

}
  • 写回答

1条回答 默认 最新

  • 程序go 2017-12-21 19:48
    关注

    Have you tried something like:

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

    and then in your ajax post:

    data: JSON.stringify(model),
    

    It may not make any difference but I've never seen:

    type: 'POST',
    

    rather

    type: "POST",
    
    评论

报告相同问题?