【问题标题】:Fetch Data from database to Fullcalendar.io using Json使用 Json 从数据库获取数据到 Fullcalendar.io
【发布时间】:2015-11-26 22:33:02
【问题描述】:

在下面的代码中,我试图从数据库中的表中选择事件以在开源日历 Fullcalendar.io 中显示它

public JsonResult GetEvents()
    {
        using (var db = new MyDatabaseEntities())
        {
            var select = from cevent in db.EventTables
                         select new {
                             id = cevent.Id,
                             start = cevent.Start_Time,
                             end = cevent.End_Time
                         };
            var rows = select.ToArray();
            return Json(rows, JsonRequestBehavior.AllowGet);
        }            
    }

问题是我使用以下事件来获取文档中描述的数据:

events: function () {
        $.ajax({ 
            url: 'GetEvents', 
            type: 'GET',
            success: function (result) {
                console.log(result);
            },
            error: function (result) {
                console.log("data is not fetshed from database");
            }
        }); 
    },

当在浏览器中查看控制台时,结果如下:

这就是开始和结束时间保存在数据库中的方式 开始和结束日期格式错误,我无法修复它,请谁能帮忙。

【问题讨论】:

    标签: c# json model-view-controller fullcalendar


    【解决方案1】:

    您需要在 ISO8601 日期字符串中返回开始和结束参数的日期。如http://fullcalendar.io/docs/event_data/startParam/

    所述

    代码应该是:

    public JsonResult GetEvents()
    {
        using (var db = new MyDatabaseEntities())
        {
            var events = from cevent in db.EventTables
                         select cevent;
            var rows = events.ToList().Select(cevent => new {
                             id = cevent.Id,
                             start = cevent.Start_Time.AddSeconds(1).ToString("yyyy-MM-ddTHH:mm:ssZ"),
                             end = cevent.End_Time.ToString("yyyy-MM-ddTHH:mm:ssZ")
                         }).ToArray();
            return Json(rows, JsonRequestBehavior.AllowGet);
        }            
    }
    

    我建议将开始时间增加 1 秒,以避免发生以下事件的冲突: 活动一 10:00 至 11:00 活动2 11:00-11:30

    对于 fullcalendar.io,Event2 与 Event1 重叠,因为 Even1 的最后一秒和 Event2 的第一秒。

    【讨论】:

    • 我试过这个兄弟,但不幸的是我收到了这个错误 500(内部服务器错误)
    • 你能确认cevent上的start_time和end_time是DataTime吗?
    • 是的,我将开始和结束时间保存为 DB 中的 DateTime
    • 你能调试一下action方法,看看它在哪一行抛出错误?
    • 动作方法执行没有错误,500错误出现在Chrome浏览器中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多