我试图让标准的Visual 2012 MVC4网络模板和oAuth工作,但它不会!
以下是重新创建的简单步骤。
此时,我看到以下错误:
Error when entering login page:
Unhandled exception at line 115, column 5 in http://localhost:63180/Scripts/jquery.unobtrusive-ajax.js
0x800a01b6 - Microsoft JScript runtime error: Object doesn't support property or method 'live'此时,我得到了一个错误:
ProtocolException was unhandled by user code
No OpenID endpoint found发布于 2013-02-08 00:53:59
错误产生的原因及解决方法
原因是jQuery-unobtrusionajax.js负责使用ASP.NET live在jQuery MVC中支持不引人注目的ajax。但该方法在jQuery 1.7中被废弃,并在1.9中被删除。
此方法允许与当前或将来的任何DOM元素关联的事件。目前取代live的方法是on方法。
但是,语法有一点不同,因为该方法在jQuery上有更多的用途。
$ ("form [data-ajax = true].") live ("submit", function (e) { ... }用对live的调用修改对on的调用。
对于on来说,就像我们碰巧使用on 3参数一样:事件(像live,将“提交”)一个选择器(元素“子”)是基于选择器的,它必须始终存在处理程序函数(比如live)。
在本例中,我们的行如下所示:
$ ("body"). on ("submit", "form [data-ajax = true]", function (e) { ... }我将选择器移到on的第二个参数,并使您成为一个基本的选择器"body“(并不是最优的,但我确信总是如此)。
其思想是,最后一个函数与form [data-ajax = true]类型的所有当前和未来元素相关联,这些元素位于选择器基(主体)中。
对于所有其他要生存的呼叫(还有3次),请按如下方式进行相同的替换:
$ ("body"). on ("click", "form [data-ajax = true]: submit", function (e) { ... }
$ ("body"). on ("click", "a [data-ajax = true]", function (e) { ... }
$ ("body"). on ("click", "form [data-ajax = true] input [type = image]", function (e) { ... }准备好了!有了这个功能,我们已经恢复了ajax功能,MVC不引人注目,您的应用程序应该再次正常工作!
翻译自:http://geeks.ms/blogs/etomas/archive/2013/01/18/jquery-1-9-y-el-unobtrusive-ajax-de-asp-net-mvc.aspx
发布于 2013-02-08 01:00:24
NuGet中的非突出库尚未更新,也不适用于jQuery 1.9。
请参阅Unobtrusive Ajax stopped working after update jQuery to 1.9.0
https://stackoverflow.com/questions/14763849
复制相似问题