升级到jQuery 1.9后出现MVC 4 Internet项目JSON错误

升级到jQuery 1.9后出现MVC 4 Internet项目JSON错误,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,在VisualStudio2012中,我使用Internet模板创建了一个MVC4项目,当我将jQuery更新到当前版本1.9时,我在尝试登录到生成的web应用程序时收到一个jQuery错误。这个错误只发生在IE中(我运行的是IE 10),似乎是由于不同浏览器的JSON解析器不同造成的 因此,我需要解决的是,我们如何使用MVC4 Internet模板,并且仍然能够更新到jQuery1.9 以下是纠正错误的步骤 1:使用Internet项目模板创建新的MVC 4项目-该模板使用jQuery 1.7

在VisualStudio2012中,我使用Internet模板创建了一个MVC4项目,当我将jQuery更新到当前版本1.9时,我在尝试登录到生成的web应用程序时收到一个jQuery错误。这个错误只发生在IE中(我运行的是IE 10),似乎是由于不同浏览器的JSON解析器不同造成的

因此,我需要解决的是,我们如何使用MVC4 Internet模板,并且仍然能够更新到jQuery1.9

以下是纠正错误的步骤

1:使用Internet项目模板创建新的MVC 4项目-该模板使用jQuery 1.7.1.1,工作正常,我可以注册为新用户并登录等。
2:现在将jQuery、jQuery验证和jQuery UI更新至最新版本(目前分别为1.9.0、1.10.0和1.10.0)。
3:运行应用程序并切换到登录页面。此页面在以下jquery.unobtrusive-ajax.js代码中生成错误

    $("a[data-ajax=true]").live("click", function (evt) {
    evt.preventDefault();
    asyncRequest(this, {
        url: this.href,
        type: "GET",
        data: []
    });
});

4:好的,没问题,在jQuery 1.9中删除了live(),所以我加入了jQuery迁移脚本。
5:我重新运行了应用程序,现在在jquery-1.9.0.js中登录解析JSON时出现错误。错误在parseJSON方法中

    parseJSON: function( data ) {
    // Attempt to parse using the native JSON parser first
    if ( window.JSON && window.JSON.parse ) {
        return window.JSON.parse( data );
    }...
该错误是由传递给parseJSON的“undefined”引起的,因此在IE window.JSON.parse中会抛出一个错误,而在其他浏览器中不会抛出错误

所以问题是,要让MVC4 Internet模板在IE上与jQuery1.9一起工作,什么是可以接受的解决方法

顺便说一句,这里是partial parseJSON方法,它解释了为什么以前没有错误

    parseJSON: function( data ) {
    if ( !data || typeof data !== "string") {
        return null;
    }...

JQuery已经有很多特性被弃用了。您可能对此感兴趣:


答案可能在这个链接中。
看起来MVC团队正计划在下一个版本中修复它。我希望这会有所帮助。

对于ASP.NET和Web Tools 2012.2发行版(从下载),应该使用更新的jquery.validate.unobtrusive.js进行修复。

这肯定是IE 9的问题……代码中没有问题……这并不能解决问题