ASP.NET MVC集成FullCalendar无法显示数据库事件求助
问题分析与解决方案
嘿,我一眼就发现问题的根源了!你看:
- 你直接在代码里声明事件时用的是**
resourceId**(英语拼写,单个s),这是FullCalendar资源视图期望的标准字段名; - 但你的后端API返回的JSON里,字段名是**
ressourceId**(法语拼写,两个s)——FullCalendar根本识别不了这个非标准的字段名,所以才会出现API返回数据正确却不显示的情况。
给你两种解决办法,选适合你的就行:
方案一:修改后端接口(推荐)
直接调整后端代码,把返回的JSON字段名从ressourceId改成resourceId,完全贴合FullCalendar的规范,这样前端不需要任何额外改动就能正常显示事件。
修改后的JSON响应应该是这样的:
[{"id":3,"start":"2019-08-30T09:00:00","end":"2019-08-30T14:00:00","resourceId":"12345678"}]
方案二:前端转换字段(如果后端不能改)
如果后端接口没法修改,就用FullCalendar提供的eventDataTransform回调函数,把返回的ressourceId字段映射成resourceId。修改你的events配置如下:
events: { url: "/Planning/Planning/GetEventsUnit/@ViewBag.Unit.Code/", method: 'POST', failure: function() { alert('Erreur dans la récupération des événements !'); }, // 新增字段转换回调 eventDataTransform: function(eventData) { // 把ressourceId的值赋给resourceId,同时保留其他字段 return { id: eventData.id, start: eventData.start, end: eventData.end, resourceId: eventData.ressourceId // 如果还有其他字段,也在这里一并复制 }; } }
这样处理后,FullCalendar就能正确识别事件对应的资源ID,事件也就正常显示啦!
内容的提问来源于stack exchange,提问作者Jonathan SA
相关产品推荐
相关产品推荐

