mon*_*tro 37 jquery asp.net-mvc-3 unobtrusive-ajax
我刚刚将jQuery和jQuery UI更新为:jquery-1.9.0.min.js和jquery-ui-1.9.2.min.js
并且...我所有不引人注意的Ajax调用(Ajax.ActionLink,Ajax.BeginForm)都停止正常工作 - 它们在新页面中打开结果,而不是更新现有的div.
当我的页面加载时,我在Firebug中收到此javascript错误:

代码当然没有改变,只是使用Nuget更新了jQuery脚本.
有人经历过同样的问题吗?
jas*_*ruz 70
更新:此问题已在最新的NuGet包中修复.我发布了另一个答案来反映这一点. /sf/answers/1087759571/
在jquery.unobtrusive-ajax.js,找到并替换这四行:
$("a[data-ajax=true]").live("click", function (evt) {
$(document).on("click", "a[data-ajax=true]", function (evt) {
$("form[data-ajax=true] input[type=image]").live("click", function (evt) {
$(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
$("form[data-ajax=true] :submit").live("click", function (evt) {
$(document).on("click", "form[data-ajax=true] :submit", function (evt) {
$("form[data-ajax=true]").live("submit", function (evt) {
$(document).on("submit", "form[data-ajax=true]", function (evt) {
您还可以jquery.unobtrusive-ajax.min.js使用WebGrease 生成新的.从命令提示符,切换到您的解决方案文件夹并输入此命令(假设您的项目文件夹被调用Web):
packages\WebGrease.1.3.0\tools\WG.exe -m -in:Web\Scripts\jquery.unobtrusive-ajax.js -out:Web\Scripts\jquery.unobtrusive-ajax.min.js
Run Code Online (Sandbox Code Playgroud)
jas*_*ruz 42
将Microsoft jQuery Unobtrusive Ajax NuGet包更新到最新版本.
在Visual Studio中,从" 工具"菜单中选择" 库包管理器",然后单击" 包管理器控制台".在提示符下键入:
Update-Package Microsoft.jQuery.Unobtrusive.Ajax
Run Code Online (Sandbox Code Playgroud)
此问题已在Microsoft jQuery Unobtrusive Ajax 2.0.30116.0(2013年2月18日,星期一)中修复,该.live()方法使用推荐的方法替换了对方法的调用(在jQuery 1.7中弃用并从jQuery 1.9中删除).on().
Oli*_*ryn 28
.live()自1.7以来已被弃用,并在jQuery 1.9中被正式删除.请.on()改用,因为它是做同样事情的首选方法.
Cal*_*age 10
解决jQuery中的重大变化问题的最简单方法(在我看来)是安装jQuery.Migrate允许您使用在1.9.0版本中删除的已弃用函数调用的包.至少在微软更新不引人注目的ajax插件之前.
此外,似乎不引人注目的ajax插件的每晚构建已更新api调用.我还没有测试过,但您可能会在asp.net codeplex页面中找到如何获取它.
更新:Unobtrusive Ajax和Validation Nuget包已更新,因此jQuery.Migrate不再需要包.
| 归档时间: |
|
| 查看次数: |
33473 次 |
| 最近记录: |