【问题标题】:Displaying data on Full Calendar using Ajax not displaying records使用 Ajax 在完整日历上显示数据而不显示记录
【发布时间】:2020-05-06 14:43:02
【问题描述】:

我创建了一个完整日历并使用 ajax 从数据库表中填充事件。

我可以得到图表,但它没有从数据库中填充事件,而是显示今天的日期和时间,并且只显示一个事件。

我不确定自己做错了什么。

我正在学习本教程: http://www.dotnetawesome.com/2017/06/event-calendar-in-aspnet-mvc.html

什么是 currently displaying

我的布局页面中的脚本

    <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>

日历控制器下的Get方法

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

【问题讨论】:

    标签: javascript c# ajax asp.net-core


    【解决方案1】:

    但是它没有从数据库中填充事件

    1. 请注意,您正在学习 ASP.NET Classic 而不是 ASP.NET Core 的旧教程。我们返回JsonResult 的方式已经改变了

      公共 JsonResult Schedules() { var schedules = _context.Schedules.ToList(); var result = new JsonResult(new { Data = schedules}); return new JsonResult(result.Value); 返回新的 JsonResult(schedules); }

      今天,我们不再需要为 JsonResult 指定 Data 属性。相反,只需通过new JsonResult(the_data) 构造一个JsonResult

    2. 第二个问题是,如果您使用的是 ASP.NET Core 3.1,则默认返回的 json 是 Camel-Cased。但是,您的 javascript 代码可能假定服务器返回的 JSON 是 Pascal-Cased。如果是这种情况,请将您的 js 代码更改如下:

      事件.push({ 标题:v.Subject, 标题:v.主题, 描述:v.Description, 描述: v.描述, 开始:时刻(v.Start), 开始:时刻(v.start), 结束: v.EndTime != null ?时刻(v.EndTime):空, 结束: v.endTime != null ?时刻(v.endTime):空, 颜色:v.ThemeColor, 颜色:v.themeColor, allDay: v.IsFullDay allDay: v.isFullDay });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多