使用Ajax在完整日历上显示数据不显示记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Ajax在完整日历上显示数据不显示记录相关的知识,希望对你有一定的参考价值。

我创建了完整日历,并使用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);
        
答案

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

  1. 请注意,您正在使用ASP.NET Classic的旧教程,而不是ASP.NET Core。而且我们返回JsonResult的方式为changed

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

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

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

    events.push(标题:v.Subject,标题:v.subject,说明:v.Description,说明:v.description,开始:moment(v.Start),开始:时刻(v。开始),end:v.EndTime!= null? moment(v.EndTime):null,结束:v.endTime!= null? moment(v.endTime):null,颜色:v.ThemeColor,颜色:v.themeColor,allDay:v.IsFullDayallDay:v.isFullDay);

以上是关于使用Ajax在完整日历上显示数据不显示记录的主要内容,如果未能解决你的问题,请参考以下文章

JS日历推送数据显示

ajax调用后Rails不显示flash消息

完整的日历全天事件显示在错误的一天[关闭]

基于数据库选择在 ajax 日历控件中突出显示/禁用特定日期

Fullcalendar 不显示事件 MVC

带有谷歌日历的完整日历