Fullcalendar v2.6.0是否能够在jQuery-3.3.1和MVC 5上工作?

Fullcalendar v2.6.0是否能够在jQuery-3.3.1和MVC 5上工作?,jquery,fullcalendar,internet-explorer-11,fullcalendar-2,Jquery,Fullcalendar,Internet Explorer 11,Fullcalendar 2,Fullcalendar v2.6.0是否能够在jQuery-3.3.1和MVC 5上工作?我有一个旧项目需要升级。我正在使用Visual Studio 2017、jQuery-3.3.1、MVC 5.2.4和moment.min.js 2.24来重新编译它,但我在使用IE 11时总是遇到一个错误: 中第3827行第3列的未处理异常 0x800a138f-JavaScript 运行时错误:无法获取未定义或null的属性“format” 参考文献 当我使用Google Chrome进行调试时,我收

Fullcalendar v2.6.0是否能够在jQuery-3.3.1和MVC 5上工作?我有一个旧项目需要升级。我正在使用Visual Studio 2017、jQuery-3.3.1、MVC 5.2.4和moment.min.js 2.24来重新编译它,但我在使用IE 11时总是遇到一个错误:

中第3827行第3列的未处理异常 0x800a138f-JavaScript 运行时错误:无法获取未定义或null的属性“format” 参考文献

当我使用Google Chrome进行调试时,我收到一条错误消息:

未捕获的TypeError:无法读取null的属性“format”

有人有什么想法吗?谢谢

对不起,这是我在index.cshtml中的日历代码

 <script type="text/javascript">

    $(document).ready(function() {

        $('#calendar').fullCalendar({
            theme: true,
            aspectRatio: 2,
            defaultDate: '@DateTime.Now.ToString("MM-dd-yyyy")',
            editable: true,
            eventLimit: true, // allow "more" link when too many events
            events: {
                url: '@Url.Action("GetCalendarEvents")',
                error: function () {
                    $('#script-warning').show();
                }
            },
            eventClick: function (calEvent, jsEvent, view) {
                //set the values and open the modal
                //var winWidth = $(window).width();
                //var dialogWidth = winWidth * 0.5;
                var gdiv = $("#eventInfo");
                if (gdiv != null) gdiv.empty();

                $.ajaxSetup({ cache: false });

                var request = $.ajax({
                    type: "GET",
                    url:  calEvent.ajaxUrl,
                    data: {}
                });

                request.done(function (returndata) {
                    $("#eventInfo").html(returndata);

                });


                request.fail(function (jqXHR, status) {
                    alert("Error repopulating grid : " + status + "");
                });

                $.ajaxSetup({ cache: true });

            }
        });

    });

    </script>

$(文档).ready(函数(){
$(“#日历”).fullCalendar({
主题:真的,
方面:2,
defaultDate:“@DateTime.Now.ToString(“MM dd yyyy”)”,
是的,
eventLimit:true,//当事件太多时允许“更多”链接
活动:{
url:'@url.Action(“GetCalendarEvents”)',
错误:函数(){
$(“#脚本警告”).show();
}
},
eventClick:函数(calEvent、jsEvent、view){
//设置值并打开模式对话框
//var winWidth=$(window.width();
//var dialogWidth=winWidth*0.5;
var gdiv=$(“#事件信息”);
如果(gdiv!=null)gdiv.empty();
$.ajaxSetup({cache:false});
var请求=$.ajax({
键入:“获取”,
url:calEvent.ajaxUrl,
数据:{}
});
请求完成(函数(返回数据){
$(“#事件信息”).html(返回数据);
});
请求失败(功能(jqXHR,状态){
警报(“重新填充网格时出错:+状态+”);
});
$.ajaxSetup({cache:true});
}
});
});

下面是一个使用这些库版本的JSFIDLE(MVC版本不相关,因为它只影响服务器端代码):

很遗憾,您没有发布自己的代码,因此我使用了非常基本的日历设置进行测试:

$(document).ready(function() {
  $('#calendar').fullCalendar({
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay'
    }
  });
});
它确实会产生您的问题中提到的错误,因此简短的回答是否定的,这种库版本组合不起作用

所以你的选择是

a) 降级jQuery版本,直到问题停止(根据一些快速测试,2.2.4似乎是它使用的最后一个版本)

或者(可能更好)


b) 升级您的fullCalendar版本,因为2.x现在是传统版本。3.x几乎100%与2.x兼容,但与较新的jQuery兼容。看见4.x是一个更大的变化,但从长远来看,它可能是值得的,因为这是未来在新功能、错误修复等方面的发展方向。4.x也不需要jQuery或momentJS,所以头痛会完全消失。。。请参阅。

我将fullCalendar升级到V3.9,并且它现在正在工作。除了警告:弃用警告:提供的值不是可识别的RFC2822或ISO格式外,不再存在任何错误。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅momentjs.com/guides/#/warnings/js date。但至少日历在我的web应用程序上工作正常。谢谢大家的帮助。如果您对上述警告有任何想法,请告诉我。

不尝试访问任何名为“format”的属性。它必须是您传递给jQuery执行的代码。从你的截图判断,这是你传递给的函数。谢谢你的回答。我明白。该项目的旧版本运行良好。我将旧版本项目从旧版本visual studio升级到visual studio 2017。除了存在于visual studio 2017中的jquery 3.3.1之外,我没有更改任何代码。旧版本的项目引用了jquery 1.9.1分钟。我的项目使用的是jquery 3.3.1分钟。您认为是不是某些js文件版本导致了这个问题?你能告诉我如何解决你提到的问题吗?(每个函数)?再次感谢。您的代码试图访问null上的format属性。您没有显示该代码,因此我们无法帮助修复它。请尝试使用旧的JQuery版本(
),而不是使用JQuery 3.3.1版本。另外,您可以参考并使用最新版本的Fullcalendar,使用时无需添加JQuery引用。谢谢大家的回答。我在问题中添加了日历代码。你能看一下吗?我更喜欢使用最新版本的JQuery(3.3.1),因为我使用的是Visual studio 2017、.net Framework 4.6.1和mvc 5.2.4。我不想降低jQuery的版本。这意味着我必须升级FullCalendar的版本?谢谢,谢谢你的回答。我不想降级jQuery的版本,因为我使用的是Visual studio 2017、.net Framework 4.6.1和mvc 5.2.4。所以fullCalendar 2.x肯定与VS 2017不兼容,对吗?对于VS2017,我必须将我的完整日历升级到3.x或4.x,对吗?因为我必须向我的经理报告,关于日历的旧代码不能再使用了。谢谢。您使用的jQuery版本与Visual Studio(它只是用来编写代码而不是执行代码的IDE)、.NET Framework版本(其代码运行服务器端,jQuery在浏览器中运行)或MVC版本(也是服务器端)完全无关。所有这些都不会限制您使用jQuery。仅仅因为MVC模板默认部署了一些东西并不意味着你不能更改它。有可能一些