繁体   English   中英

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

[英]Displaying data on Full Calendar using Ajax not displaying records

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

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

我不确定我做错了什么。

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

当前显示的内容

我的布局页面中的脚本

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

Calendar Controller下的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的方式已经改变

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

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

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

    \n事件.推送({\n    \n   
       
       
        
        \n    
       
       
        
        
          标题:诉主题, 
        
       
       
        
        \n   
       
       \n    标题: v.subject,\n    \n   
       
       
        
        \n    
       
       
        
        
          描述: v. 描述, 
        
       
       
        
        \n   
       
       \n    描述: v. 描述,\n    \n   
       
       
        
        \n    
       
       
        
        
          开始:时刻(v.Start), 
        
       
       
        
        \n   
       
       \n    开始:时刻(v.start),\n    \n   
       
       
        
        \n    
       
       
        
        
          结束: v.EndTime != null ? 
         
        
        
          时刻(v.EndTime):空, 
        
       
       
        
        \n   
       
       \n    结束: v.endTime != null ? 时刻(v.endTime):空,\n    \n   
       
       
        
        \n    
       
       
        
        
          颜色:v.ThemeColor, 
        
       
       
        
        \n   
       
       \n    颜色:v.themeColor,\n    \n   
       
       
        
        \n    
       
        
        
        
          allDay: v.IsFullDay 
        
       
       
        
        \n   
       
       \n    全天:v.isFullDay\n });\n

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM