【问题标题】:Fullcalendar 5; JSON feed from MVC Controller not working (.NET CORE 3)完整日历 5;来自 MVC 控制器的 JSON 提要不起作用(.NET CORE 3)
【发布时间】: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


【解决方案1】:

解决了!我已将 [DontWrapResult] 放在该方法之上并且它有效。我使用的框架 (ABP) 将结果与其他数据一起包装,并对 JSON 字符串进行双重编码。

感谢@ADyson 让我走上了正确的道路!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    相关资源
    最近更新 更多