使用ASP.NET中的webmethod json feed填充FullCalendar事件源?

时间:2014-10-24 21:52:31

标签: asp.net fullcalendar webmethod

如何使用JSON Feed? webmethod受到了攻击,但它在获取事件时抛出了错误,#34;错误。"我认为它与ASP.NET相关,包括" d。"但我不知道如何继续。

[WebMethod]
public string GetEvents(string webMethodParam)
{
  return @"[{""title"": ""All Day Event"",""start"": ""2014-09-01""}]";
}

 function createCal() {
        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },

            eventSources: [{
                        url: "<%= AdminPath %>WebMethods/WebService1.asmx/GetEvents",
                        type: 'POST',
                        data: {
                            webMethodParam: 'something'
                        },
                        error: function () {
                            alert('there was an error while fetching events!');
                        }
                    }],
            defaultDate: '2014-09-12',
            editable: false,
            eventLimit: true
        });
    }

1 个答案:

答案 0 :(得分:0)

这与这种奇怪的相关&#34; d。&#34;包装。为了解决这个问题,我做了以下几点。

   [WebMethod]
        public void GetEvents(string webMethodParam)
        {
            string ret = @"[{""title"": ""All Day Event"",""start"": ""2014-09-01""}]";
            this.Context.Response.ContentType = "application/json; charset=utf-8";
            this.Context.Response.Write(ret);
        }

要创建日历以异步调用webmethod和当前日期,我就这样做了。

function getCalendarDisplayDate() {

        try {
            var now = moment().format("dddd, MMMM Do, YYYY, h:MM:ss A");
            var m = moment();

            var moment2 = $('#calendar').fullCalendar('getDate');
            return moment2.format();
        }
        catch (err) {

        }

        return "init"; 
    }

    function createCal() {
        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },

            eventSources: [{
                url: "<%= AdminPath %>WebMethods/WebService1.asmx/GetEvents",
                type: 'POST',
                data: {
                    webMethodParam: getCalendarDisplayDate
                },
                error: function (v) {
                    alert('there was an error while fetching events!');
                }
            }],
            defaultDate: '2014-09-12',
            editable: false,
            eventLimit: true
        });
    }