我正在尝试从我的 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 应该理解并打印您的输出。