升级到jQuery 1.9后出现MVC 4 Internet项目JSON错误
在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,工作正常,我可以注册为新用户并登录等。升级到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
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的问题……代码中没有问题……这并不能解决问题