Полный календарь + событие + падение события + Ajax — не отправляет значения даты

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

   $('calendar').fullCalendar
            ({
                theme: true,
                defaultView: 'agendaWeek',
                columnFormat:
                {
                    week: "ddd"
                },
                header: false,
                allDaySlot: false,
                minTime: '6am',
                maxTime: '9pm',
                editable: true,
                droppable: true,
                drop: function (date, allDay)
                { // this function is called when something is dropped

                    // retrieve the dropped element's stored Event Object
                    var originalEventObject = $(this).data('eventObject');

                    // we need to copy it, so that multiple events don't have a reference to the same object
                    var copiedEventObject = $.extend({}, originalEventObject);

                    // assign it the date that was reported
                    copiedEventObject.start = date;
                    copiedEventObject.allDay = allDay;

                    // render the event on the calendar
                    // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
                    $('calendar').fullCalendar('renderEvent', copiedEventObject, true);


                },
                eventDrop: function (event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view)
                {
                    var a = event.start;
                    var b = event.end
                    $.ajax
                    ({
                        url: MyURL,
                        type: 'Post',
                        data: { 'Start': a, 'End': b },
                        success: function (response)
                        {

                        }
                    });
                }
                )};

Когда я предупреждаю переменные «a» и «b», это показывает мне, что в этих переменных есть время.

  [HttpPost]
        public void CreateSlot(string Start, string End)
        {

        }

Я знаю, что он достигает этого метода, но он никогда не отправляет ни один из параметров, они всегда равны нулю.

Есть идеи, почему?

Изменить

Кажется, что-то с объектом или что-то в этом роде. Я попробовал это в методе падения, чтобы увидеть, происходит ли то же самое, и нашел то же самое.

однако, когда я сделал это

 drop: function (date, allDay)
{
      $.ajax
                    ({
                        url: MyURL,
                        type: 'Post',
                        data: { 'Start': date.getTime() },
                        success: function (response)
                        {

                        }
                    });


}

Это не было проблемой. Поэтому мне интересно, не может ли asp.net mvc найти привязку объекта даты. Что мне кажется странным, так как я использую строку.


person chobo2    schedule 15.07.2011    source источник


Ответы (2)


arrow_upward
2
arrow_downward

Преобразование даты в формат, поддерживаемый C#.

   eventDrop: function (event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view)
            {

                var a= $('#calendar').fullCalendar('formatDate', event.start, "yyyy-MM-dd HH:mm:ss");

                var b;

                if (event.end != null||event.end != undefined) {
                    b = $('#calendar').fullCalendar('formatDate', event.end, "yyyy-MM-dd HH:mm:ss");
                }


                $.ajax
                ({
                    url: MyURL,
                    type: 'Post',
                    data: { 'Start': a, 'End': b },
                    success: function (response)
                    {

                    },
                    error: function (msg) {
                        revertFunc();
                    },
                });


            },


 [HttpPost]
    public void CreateSlot(DateTime Start, DateTime End)
    {

    }
person Gaurav Dhavale    schedule 30.11.2013

arrow_upward
0
arrow_downward

Возможно ли, что, поскольку вы не указываете json в качестве типа данных в своем вызове ajax, он не передается таким образом (и, следовательно, ваш метод неправильно получает параметры)?

i.e.,

$.ajax
     ({
       url: MyURL,
       type: 'Post',
       data: { 'Start': a, 'End': b },
       dataType: 'json',.....
person Arthur Frankel    schedule 15.07.2011
comment
Я могу попробовать (сомнительно, так как я делаю все остальные) - person chobo2; 15.07.2011
comment
Я могу ошибаться, но я думаю, что вам нужно поставить кавычки вокруг «а» и «б». Например: данные: { 'Начало': '' + a + '', 'Конец': '' + b + '' }, так как получается строка, и для запроса json нужны кавычки. Date.getTime() возвращает число, поэтому его не нужно заключать в кавычки. - person Arthur Frankel; 15.07.2011