从服务器获取事件的全日历不起作用

FullCalendar fetching events from server not working

本文关键字:日历 不起作用 事件 服务器 获取      更新时间:2023-09-26

我正在尝试从我的 LocalDB 服务器获取事件并让它们显示在我的日历上,但它们没有出现。

我使用以下方法来获取事件。

public JsonResult GetEvents(double start, double end)
{
    var fromDate = ConvertFromUnixTimestamp(start);
    var toDate = ConvertFromUnixTimestamp(end);
    var eventList = from e in db.Events
                    select new
                    {
                        ID = e.ID,
                        Title = e.Title,
                        StartDate = e.StartDate.ToString("s"),
                        EndDate = e.EndDate.ToString("s"),
                        EventType = e.EventType,
                        Hours = e.Hours,
                        AllDay = true
                    };
    var rows = eventList.ToArray();
    return Json(rows, JsonRequestBehavior.AllowGet);
}
private static DateTime ConvertFromUnixTimestamp(double timestamp)
{
    var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return origin.AddSeconds(timestamp);
}

我的日历呈现如下:

@Styles.Render("~/Content/fullcalendar")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/fullcalendar")
<br />
<div id="calendar"></div>
<br />
<script type="text/javascript">
$(document).ready(function () {
    $('#calendar').fullCalendar({
        header: {
            left: 'title',
            center: '',
            right: 'prev,next today' },
        defaultView: 'month',
        weekends: false,
        editable: false,
        events: "/Home/GetEvents/"    });
});
</script>

任何帮助将不胜感激。

编辑:

这是在我的 Web 控制台中:

no element found abort:1:1
Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. browserLink:37:40278
no element found send:1:1
no element found send:1:1
no element found send:1:1
no element found
GET http://localhost:54802/Home/GetEvents/ [HTTP/1.1 500 Internal Server Error 10ms]

您的响应不符合 fullCalendar 的预期输出。如果您看到文档,您就会了解每个事件至少需要具有以下参数:

  • 标题
  • 开始

在您的情况下,代码应该是这样的:

public JsonResult GetEvents(double start, double end)
{
    var fromDate = ConvertFromUnixTimestamp(start);
    var toDate = ConvertFromUnixTimestamp(end);
    var eventList = from e in db.Events
                    select new
                    {
                        id = e.ID,
                        title = e.Title,
                        start = e.StartDate.ToString("s"),
                        end = e.EndDate.ToString("s"),
                        eventType = e.EventType,
                        hours = e.Hours,
                        allDay = true
                    };
    var rows = eventList.ToArray();
    return Json(rows, JsonRequestBehavior.AllowGet);
}

我认为,第一个问题是每个事件的变量名称。这与 fullCalendar 的预期不符。

有了这个新的 GetEvents 方法,fullCalendar 应该理解并打印您的输出。