You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MVC项目中FullCalendar V5事件无法在日历显示的问题

排查FullCalendar v5事件不显示问题(MVC5 + EF)

针对你遇到的JSON返回正常但事件无法渲染的问题,按以下步骤逐一排查:

1. 强制确保日期字段的ISO 8601格式

FullCalendar v5对start字段的格式要求严格,必须是ISO 8601标准字符串(如"2024-05-20T14:30:00"),MVC5默认的JsonResult会将DateTime序列化为微软专属格式(/Date(xxxxxx)/),即使手动修改格式也可能被序列化覆盖。建议用Newtonsoft.Json手动序列化:

// Controller代码示例
using Newtonsoft.Json;

public ActionResult GetEvents()
{
    var events = db.Events.Select(e => new 
    {
        id = e.Id, // 建议添加唯一ID,避免渲染异常
        title = e.EventTitle, // 必须存在title字段,否则事件不显示
        start = e.StartDate.ToString("yyyy-MM-ddTHH:mm:ss"),
        end = e.EndDate?.ToString("yyyy-MM-ddTHH:mm:ss"), // 可选,按需添加
        allDay = e.IsAllDay // 可选,标记全天事件
    }).ToList();

    // 用Content返回手动序列化的JSON,确保格式正确
    return Content(JsonConvert.SerializeObject(events), "application/json");
}

2. 验证前端FullCalendar配置

检查JS代码中事件源的路径、请求方式是否正确,避免路由或跨域问题:

document.addEventListener('DOMContentLoaded', function() {
    const calendarEl = document.getElementById('calendar');
    const calendar = new FullCalendar.Calendar(calendarEl, {
        initialView: 'dayGridMonth',
        // 确保Action路径与Controller路由匹配
        events: '/YourController/GetEvents',
        // 如果是POST请求,需指定method
        // events: {
        //     url: '/YourController/GetEvents',
        //     method: 'POST'
        // }
    });
    calendar.render();
});

3. 用Chrome开发者工具验证细节

  • Network面板:查看请求的Response,确认JSON数组结构正确,字段名(如start、title)为小写(C#驼峰命名会被Newtonsoft.Json自动转小写),无语法错误。
  • Console面板:检查是否有FullCalendar初始化报错,或字段缺失提示。可手动打印返回数据确认:
    fetch('/YourController/GetEvents')
        .then(res => res.json())
        .then(data => console.log('事件数据:', data));
    
    重点检查每个事件对象是否包含title和start字段,且start格式符合ISO标准。

4. 数据库数据校验

确认数据库中StartDate字段无空值、无无效日期(如1900-01-01),如果是全天事件,start字段可简化为"2024-05-20"格式,FullCalendar会自动识别为全天事件。

内容的提问来源于stack exchange,提问作者Gökhan Özdemir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:45:47