Отображение данных в полном календаре с использованием Ajax без отображения записей - PullRequest
1 голос
/ 20 января 2020

Я создал полный календарь и использую ajax для заполнения событий из таблиц базы данных.

Я могу получить график, показывающий, однако, что он не заполняет события из базы данных, вместо этого показывая сегодняшнюю дату и время и только одно событие.

Я не уверен, что делаю не так.

Я следую этому уроку: http://www.dotnetawesome.com/2017/06/event-calendar-in-aspnet-mvc.html

Что в данный момент отображает

Скрипт, который находится на моей странице макета

    <script>
    $(document).ready(function () {
        var events = [];
        $.ajax({
            type: "GET",
            url: "/Calendar/Schedules",
            success: function (data) {
                $.each(data, function (i, v) {
                    events.push({
                        title: v.Subject,
                        description: v.Description,
                        start: moment(v.Start),
                        end: v.EndTime != null ? moment(v.EndTime) : null,
                        color: v.ThemeColor,
                        allDay: v.IsFullDay
                    });
                })

                GenerateCalender(events);
            },
            error: function (error) {
                alert('failed');
            }
        })
        function GenerateCalender(events) {
            $('#calender').fullCalendar('destroy');
            $('#calender').fullCalendar({
                contentHeight: 400,
                defaultDate: new Date(),
                timeFormat: 'h(:mm)a',
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicWeek,basicDay,agenda'
                },
                eventLimit: true,
                eventColor: '#378006',
                events: events

            })
        }
    });
</script>

Получить метод под Контроллер календаря

public JsonResult Schedules()
        {
            var schedules = _context.Schedules.ToList();
            var result = new JsonResult(new { Data = schedules});
           return new JsonResult(result.Value);
        }

1 Ответ

0 голосов
/ 21 января 2020

однако он не заполняет события из базы данных

  1. Обратите внимание, что вы следуете старому учебнику для ASP. NET Classi c вместо ASP. NET Core . И способ, которым мы возвращаем JsonResult, изменил :

    public JsonResult Schedules()
    {
        var schedules = _context.Schedules.ToList();
        <strike>var result = new JsonResult(new { Data = schedules});</strike>
        <strike>return new JsonResult(result.Value);</strike>
        return new JsonResult(schedules);
    }
    

    Сегодня нам больше не нужно указывать свойство Data для JsonResult. Вместо этого просто создайте JsonResult по new JsonResult(the_data).

  2. Второй проблемой является то, что по умолчанию возвращается json Верблюжий , если вы ' Повторное использование ASP. NET Core 3.1. Однако, вероятно, ваш код javascript предполагает, что JSON, возвращаемый сервером, Pascal -Cased . В таком случае измените код js, как показано ниже:

    events.push({
        <strike>title: v.Subject,</strike>
        title: v.subject,
        <strike>description: v.Description,</strike>
        description: v.description,
        <strike>start: moment(v.Start),</strike>
        start: moment(v.start),
        <strike>end: v.EndTime != null ? moment(v.EndTime) : null,</strike>
        end: v.endTime != null ? moment(v.endTime) : null,
        <strike>color: v.ThemeColor,</strike>
        color: v.themeColor,
        <strike>allDay: v.IsFullDay</strike>
        allDay: v.isFullDay
    });
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...