#asp.net-mvc #model-view-controller #fullcalendar #fullcalendar-5
Вопрос:
Я сделал тестовую страницу, используя последнюю версию fullcalendar на тестовой странице, но она не будет отображать события в календаре, есть идеи?
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Cal</title>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.9.0/main.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar@5.9.0/main.min.css">
<script>
document.addEventListener('DOMContentLoaded', function () {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth',
events: 'CalEvents/'
});
calendar.render();
});
</script>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
Это код контроллера:
public ActionResult Cal()
{
return View();
}
public JsonResult CalEvents()
{
using (_context)
{
var events = _context.CalendarEventsNews.ToList();
return Json(events.ToArray(), JsonRequestBehavior.AllowGet);
}
}
Это и есть ответ:
[{"id":1,"eventName":"Test","eventDescription":"Testing Description","eventLocation":"UK","startDate":"/Date(1633561200000)/","endDate":"/Date(1633730400000)/","allDay":false}]
Комментарии:
1. Ваше
action
действие-это действие ajax, но где находится вызов ajax в пользовательском интерфейсе? Вам нужно вызвать действие, получить данные, а затем отобразить их в пользовательском интерфейсе.2. Я попробовал это и все равно получаю тот же вывод даты: Конец: «/Дата(1633561200000)/» Событие: 1 Полный день: фальстарт: «/Дата(1633474800000)/»
3. В основном проблема заключается в том, что ваши данные о событиях не соответствуют ожиданиям FullCalendar. Вам не приходило в голову проверить требования? fullcalendar.io/docs/event-parsing содержит список допустимых имен полей. В то время как все объекты находятся в технически необязательно, если вы реально не включают, как минимум, «название» и «старт» в собственность (убедитесь, начальная дата соответствует признается дата форматов, перечисленных в связанной документации), то это, безусловно, не сможем показать ваше мероприятие…если он не знает, где на календаре поставить, то это очень принципиальный вопрос.
Ответ №1:
Как отметил Адисон, проблема заключалась в том, что я просто неправильно просматривал документацию. Имена полей изменены и теперь работают нормально.
Еще раз спасибо Адисону за то, что указал на проблему.