0

我想从我的LocalDB服务器获取事件,并让它们显示在我的日历上,但它们没有出现。FullCalendar从服务器不能正常工作中获取事件

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

@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> 

任何帮助是极大的赞赏:

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); 
} 

我的日程表如下呈现。

编辑:

这是在我的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] 
+0

“不工作”是什么意思?在js或服务器端有没有错误?什么是从服务器返回的? – py3r3str

+0

事件应显示在日历中,但它们没有,因此为什么它们没有被正确提取。 – James

回答

0

你的反应是不符合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应该理解并打印输出。

+0

@JamesLloyd你看到在JavaScript控制台中的任何错误? ajax调用Getevents方法在你的页面中执行? –

+0

嗨,感谢您的帮助,但这仍然没有奏效。不知道我需要做什么。我想我需要建立一个存储库并使用转换后的开始和结束日期时间,但我不知道从哪里开始。 – James

+0

我在我的OP中发布了Web控制台错误。 – James