【发布时间】:2011-10-20 07:17:31
【问题描述】:
我正在使用@Ajax.ActionLink 删除一条记录:
@Ajax.ActionLink("Delete","DeleteRun",new {RunId = run.RunId},
new AjaxOptions() { Confirm = "Are you sure you want to delete this entry?",
HttpMethod = "DELETE",
OnComplete = string.Format("DeleteRunInTable({0});",run.RunId)
})
生成以下链接:
<a data-ajax="true" data-ajax-complete="DeleteRunInTable(11);" data-ajax-confirm="Are you sure you want to delete this entry?" data-ajax-method="DELETE" href="/Runs/Delete/11">Delete</a>
删除工作正常,但 OnComplete javascript 函数“DeleteRunInTable”从未被调用(我在 javascript 中放置了一个断点)。有谁知道为什么?
这里是 javascript 函数(作为外部文件包含):
function DeleteRunInTable(RunId) {
$("tr[data-runid=" + RunId).remove();
}
我已经检查了 chrome 开发者工具,以确保脚本加载正常。我还确保包含 jquery 和 jquery unobtrusive。
【问题讨论】:
-
你能从 Javascript 控制台调用 DeleteRunInTable 吗?
-
还不确定。我今晚回家时会试试(代码在哪里)。一般来说,我对 Web 开发相对较新,尤其是 javascript 和 Jquery,所以我什至从未使用过 javascript 控制台,但我回家后会尝试并告诉你结果。
-
Javascript 有一些古怪的范围规则。如果您的函数未在全局范围内定义,那么在运行 OnComplete 方法时它可能不存在。
标签: asp.net-mvc-3 unobtrusive-javascript actionlink