通过json将fullcalendar事件传递给控制器

时间:2012-07-03 11:31:59

标签: jquery asp.net-mvc fullcalendar

我试图通过Json将fullcalendar事件传递给我的控制器,但是我将null传递给我的控制器? 我究竟做错了什么? 这是我的观看代码:

<script type='text/javascript'>
    $(document).ready(function () {
        $(function () {
            $("#save").click(function () {
                var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
                alert(eventsFromCalendar);
                $.ajax(
            {

                url: '@Url.Action("Save")',
                type: 'POST',
                traditional: true,
                data: eventsFromCalendar,
                dataType: "json",
                success: function (response) {
                    alert(response);
                },
                error: function (xhr) {
                    debugger;
                    alert(xhr);
                }
            });
            });
        });
    });
     </script> 

我的控制员:

[HttpPost]
public JsonResult Save(object[] data)
{
    // edit the item and get it back
    return Json("success");
}

当我进入Jscript并查看eventsFromCalendar时,它填充得很好。

1 个答案:

答案 0 :(得分:3)

尝试将您的活动转换为JSON文字:

data:{ eventsJson: JSON.stringify(eventsFromCalendar) }

(见JSON.stringify Function (JavaScript)

然后使用像Json.NET这样的工具来解析控制器操作中发布的JSON字符串:

[HttpPost]
public ActionResult Save(string eventsJson)
{
    var events = JsonConvert.DeserializeObject<IEnumerable<Event>>(eventsJson);
    return View();
}

public class Event
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}