【发布时间】:2020-07-04 13:30:17
【问题描述】:
我正在我的 .NET CORE 3 MVC 项目中实现 fullcalendar v5。当硬编码事件时一切正常,但我似乎无法从 JSON 字符串中获取事件。日历正在触发获取提要的方法,但未呈现任何事件。我尝试了一切,阅读了 100 多个网页和堆栈溢出问题,但无济于事。
我的 MVC 控制器中的方法:
[HttpGet]
public string GetAllEvents(DateTime Start, DateTime End)
{
List<GetPromoCalendarEventsDto> calendarEvents = _promoCalendarAppService.GetAllEvents(Start, End).Result;
var result = JsonConvert.SerializeObject(calendarEvents);
return result;
}
内容结果:
[
{"title":"Event one","start":"2020-06-13","end":"2020-09-01"},
{"title":"Event two","start":"2020-06-14","end":"2020-12-30"},
{"title":"Test 20200623.001Y","start":"2020-07-03","end":"2020-08-03"}
]
Javascript:
var calendarEl = document.getElementById('promocalendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'timeGridWeek',
events: 'PromoCalendar/GetAllEvents'
});
calendar.render();
提前致谢!
【问题讨论】:
-
查看浏览器的开发者工具 - 在页面加载时观看网络工具。您是否看到“GetAllEvents”条目?它是否返回 200 OK 结果?如果是这样,那么响应中的内容到底是什么(您必须单击条目才能显示此额外信息)?它是否显示了您的预期?另外,控制台区域是否显示任何错误?这是您在处理此类问题时需要执行的客户端代码的基本调试。
-
理论上,您显示的内容应该是有效的,可以在 fullCalendar 中显示。如果它没有显示,那么您需要使用我上面提到的工具仔细检查实际情况。
-
@ADyson:我看到“GetAllEvents”条目,结果为 200 OK,响应如下:
error: null result: "[{"title":"Event one","start":"2020-06-13","end":"2020-09-01"},{"title":"Event two","start":"2020-06-14","end":"2020-12-30"},{"title":"Test 20200623.001Y","start":"2020-07-03","end":"2020-08-03"}]" success: true targetUrl: null unAuthorizedRequest: false -
您必须仅在 JSON 中返回事件数组,其中不能有其他内容。 fullCalendar 只希望看到数组。它不知道查看该 JSON 的“结果”属性以找到它需要的信息。只返回一个没有对象的纯数组。
-
当我看到我看到的纯响应时:
{"result":"[{\"title\":\"Event one\",\"start\":\"2020-06-13\",\"end\":\"2020-09-01\"},{\"title\":\"Event two\",\"start\":\"2020-06-14\",\"end\":\"2020-12-30\"},{\"title\":\"Test 20200623.001Y\",\"start\":\"2020-07-03\",\"end\":\"2020-08-03\"}]","targetUrl":null,"success":true,"error":null,"unAuthorizedRequest":false,"__abp":true},所以我猜这在很多方面都是错误的。我使用的框架,添加了很多我看到的信息..
标签: javascript ajax asp.net-core fullcalendar fullcalendar-5