Неверный запрос на выборку json из сообщения бритвы с полным календарем - PullRequest
0 голосов
/ 16 апреля 2019

Я реализовал полный календарь.Он показывает, как и положено, но выборка данных идет не так

.cshtml

    <div id='calendar'></div>

.cshtml.cs

    public class IndexModel : PageModel
    {
        public JsonResult OnPost(DateTime start, DateTime end)
        {
            return new JsonResult(new
            {
                url = "something",
                title = "something else",
                start = ConvertToUnixTimestamp(DateTime.Now).ToString(),
                end = ConvertToUnixTimestamp(DateTime.Now.AddDays(2)).ToString(),
                allDay = false,
                backgroundColor = "red",
                textColor = "green"
            });
        }
    }

.js

            document.addEventListener('DOMContentLoaded', function () {
                var calendarEl = document.getElementById('calendar');

                var calendar = new FullCalendar.Calendar(calendarEl, {
                    events: {
                        url: '/Overview/Employee/Index',
                        beforeSend: function (xhr) {
                            xhr.setRequestHeader("XSRF-TOKEN",
                                $('input:hidden[name="__RequestVerificationToken"]').val());
                        },
                        method: 'POST'
                    },
                    plugins: ['dayGrid']
                });

                calendar.render();
            });

Когда я загружаю страницу, я вижу, что происходит запрос, но он возвращает 400, неправильный запрос.Есть идеи почему?

Запрос:

enter image description here

1 Ответ

0 голосов
/ 17 апреля 2019

Я попробовал ваш код без ошибки 400 (используйте @Html.AntiForgeryToken() в форме), но событие не было успешно добавлено в календарь. Это работает, когда я возвращаю модель списка, попробуйте использовать код ниже для добавления событий:

public class EventModel
{
    public int id { get; set; }
    public string start { get; set; }
    public string end { get; set; }
    public string title { get; set; }
    public bool allDay { get; set; }
    public string url { get; set; }
    public string color { get; set; }
    public string textColor { get; set; }
}

public class IndexModel : PageModel
{
    public JsonResult OnPost(DateTime start, DateTime end)
    {
        IEnumerable<EventModel> events = new List<EventModel>()
        {
            new EventModel()
            {
                url = "something",
                title = "something else",
                start = (DateTime.Now).ToString(),
                end = (DateTime.Now.AddDays(2)).ToString(),
                allDay = false,
                color = "red",
                textColor = "green"
            }

        };
        return new JsonResult(events);
    }
}

Результаты: enter image description here

...