2

我正在尝试通过 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 时,它填充得很好。

4

1 回答 1

3

尝试将您的事件转换为 JSON 文本:

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

(参见JSON.stringify 函数 (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; }
}
于 2012-07-03T20:23:24.783 回答