全日历4:在MVC中使用Json Feed

问题描述 投票:0回答:1

由于大多数StackOverflow的帖子都是关于Fullcalender V3的,并且我使用的是第4版,所以我问如何将fullcalendar连接到服务器。我正在使用MVC,但似乎没有让日历通过Json Event Feed加载事件。我没有收到任何错误,并且响应实际上在那里,只是没有生成事件...

Controller:

public JsonResult GetCalendarInformation(int calendarIndex, DateTime start, DateTime end)
    {
        IList<CalenderEvent> calenderEvents = new List<CalenderEvent>();

        calenderEvents.Add(new CalenderEvent
        {
            Id = 1,
            Title = "Google search",
            Start = DateTime.Now.Ticks,
            End = DateTime.Now.AddHours(4).Ticks,
            Description = "test",
            Information = "test"
        });


        return Json(new
        {
            events = calenderEvents
        }, JsonRequestBehavior.AllowGet);

    }

}

VM:

public class CalenderEvent
{
    public int Id { get; set; }
    public string Title { get; set; }
    public long Start { get; set; }
    public long End { get; set; }
    public string Description { get; set; }
    public string Information { get; set; }
}

Javascript:

var calendar = new FullCalendar.Calendar(calendarEl, {            
        events: {
            url: $globfun.createAbsoluteUrlToServer("HOST/GetCalendarInformation"),
            extraParams: {
                calendarIndex: '1'
            },
            success: function (doc) {
                var d = doc; // -> Response
            }
        }            
    });

响应看起来像这样:

Events[0]:{Id: 1, Title: "Google search", Start: 637112479258609900, End: 637112623258609900, Description: "test", Information: "test"}

但是我也尝试了其他回应。

我还没有找到任何有关响应对象外观的文档。也许问题出在我的extendedProps的“描述”和“信息”中?如果没有其他选项,我仍然可以通过ajax和

手动进行操作
calendar.addEvent( event [, source ] )

但是我不认为那是这样...

fullcalendar fullcalendar-4
1个回答
0
投票

最后,经过反复试验,我弄清楚了如何使用一个类来设置和获取那些日历事件。

事件的结构保持不变,就像我手动定义它们一样:

[
    { // this object will be "parsed" into an Event Object
      title: 'The Title',
      start: '2018-09-01', 
      end: '2018-09-02' 
    }
  ]

我的班级现在看起来像这样...

 public class CalenderEvent
{
    public string id { get; set; }

    public string title { get; set; }

    public string start { get; set; }

    public string end { get; set; }

    public string description { get; set; }

    public string information { get; set; }
}

当我像这样将我的DateTime解析为ISO8601时...

 public JsonResult GetCalendarInformation(int calendarIndex, DateTime start, DateTime end)
    {
        IList<CalenderEvent> calenderEvents = new List<CalenderEvent>();

        calenderEvents.Add(new CalenderEvent
        {
            id = "1",
            title = "Google search",
            start = DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss"),
            end = DateTime.UtcNow.AddHours(4).ToString("yyyy-MM-ddTHH\\:mm\\:ss"),
            description = "test",
            information = "test"
        });
        return Json(calenderEvents, JsonRequestBehavior.AllowGet);
    }

花了我太多的时间来设置此通信...

© www.soinside.com 2019 - 2024. All rights reserved.