Jquery FullCalendar не работает с URL на контроллере - PullRequest
0 голосов
/ 17 апреля 2019

В моем событии fullcalendar я добавил (Controller / action) "/ Calendar / GetEvents /" для этого события.Это не относится к методу GetEvents в CalendarController

Я включил требования полного календаря в _Layout

    <link href="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.css" rel="stylesheet" type="text/css" />
    <script src="~/Content/Template/assets/libs/moment/moment.min.js"></script>
    <script src="~/Content/Template/assets/libs/jquery-ui/jquery-ui.min.js"></script>
    <script src="~/Content/Template/assets/libs/fullcalendar/fullcalendar.min.js"></script>

Это в моем методе CalendarController

    public JsonResult GetEvents(double start, double end)
    {

        var fromDate = ConvertFromUnixTimestamp(start);
        var toDate = ConvertFromUnixTimestamp(end);

        //Get the events
        var eventList = this.GetEvents();

        var rows = eventList.ToArray();
        return Json(rows, JsonRequestBehavior.AllowGet);
    }

В индексепредставление имеет идентификатор для календаря

    <div id="calendar"></div>

и сценария

    @section scripts{
    <script type="text/javascript">

    $(document).ready(function () {
       $('#calendar').fullCalendar({
       theme: true,

       defaultView: 'agendaDay',
       editable: false,
       events: "/Calendar/GetEvents/"
       });
    });

    </script>

    }

, как указано выше, сценарий не работает, я попытался выполнить следующие действия в качестве сценария также

    @section scripts{
    <script type="text/javascript">
       $(document).ready(function () {
            $('#calendar').fullCalendar({
                header:
                {
                    left: 'prev,next today',
                    center: 'title'
                },
                buttonText: {
                    today: 'today'
                },
                //defaultView: 'agendaDay',
                editable: false,
                //events: "/Calendar/GetEvents/"

                events: function (start, end, timezone, callback) {
                    $.ajax({
                        url: '/Calendar/GetCalendarData/',
                        type: "GET",
                        dataType: "JSON",
                        contentType: "application/json; charset=utf-8",
                        //success: function (result) {
                        //    alert('yeap');
                        //},
                        //error: function (XMLHttpRequest, textStatus, errorThrown) {
                        //    alert('oops, something bad happened');
                        //}
                        success: function (result) {
                            var events = [];

                            $.each(result, function (i, data) {
                                events.push(
                                    {
                                        title: data.Title,
                                        //description: data.Desc,
                                        start: moment(data.Start).format('YYYY-MM-DD'),
                                        end: moment(data.End).format('YYYY-MM-DD'),
                                        backgroundColor: "#9501fc",
                                        borderColor: "#fc0101"
                                    });
                            });
                            alert('hoo');
                            callback(events);
                        },
                        error: function (error) {
                            alert('failed');
                        }
                    });
                }

                //eventRender: function (event, element) {
                //    element.qtip(
                //    element.qtip(
                //        {
                //            content: event.description
                //        });
                //},

                //editable: false
            });
        });



</script>
}

Метод контроллера для этого сценария url

    public ActionResult GetCalendarData()
    {
        // Initialization.  
        JsonResult result = new JsonResult();

        try
        {
            // Loading.  
            List<CalendarDay> data = this.LoadData();

            // Processing.  
            result = this.Json(data, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            // Info  
            Console.Write(ex);
        }

        // Return info.  
        return result;
    }

Когда я бегу, он показывает календарь, но не выполняет метод действия в контроллере и не показывает события в календаре.При проверке браузера видно следующее

    MOCK GET: /Calendar/GetEvents/
    Object { url: "/Calendar/GetEvents/", type: "GET", isLocal: false, global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: {…}, contents: {…}, responseFields: {…}, … }
...