我用jQuery版本1.8.2& jquery-ui 1.8.24。我有以下ajax.actionlink: -
@Ajax.ActionLink("Show Routers", "RackRouter","Rack", new {
id = Model.Rack.TMSRackID
}, new AjaxOptions {
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "RackDetails" ,
LoadingElementId = "progress",
OnSuccess="detailsuccess"
})
以及在单独的脚本文件中加载的以下函数: -
function detailsuccess(data) {
if (data.IsSuccess == "Unauthorized") {
jAlert(data.description, 'Unauthorized Access');
}
}
以上运作良好。但我将我的jQuery从1.8.2升级到1.9.1,当我点击上面的ajax.actionlink时,我使用firebug得到以下错误: -
ReferenceError: detailsuccess is not defined jquery.unobtrusive-ajax.js line 22 > Function:1
那么为什么我的ajax.actionlink在从1.8.2升级到1.9.1之后找不到detailsuccess脚本? 感谢
答案 0 :(得分:2)
如果您查看1.9.1的release documentation,您会看到以下内容
自jQuery 1.7以来,.live()方法已被弃用 在1.9中删除。我们建议升级代码以使用.on()方法 代替。
问题在于你的不引人注意 - ajax在其代码而不是on()事件中都有live()事件。您可以通过降级jQuery或升级unobtrusive.ajax脚本来解决这个问题。
我相信可以以nuget包
的形式找到更新版本here希望这有帮助