0
我使用@ Ajax.ActionLink刪除一條記錄:ajax.Actionlink的onComplete從來沒有被稱爲
@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不顯眼的被包括在內。
你可以從Javascript控制檯調用DeleteRunInTable嗎? – StriplingWarrior
還不確定。當我今晚回家時(代碼在哪裏),我會嘗試。我對web開發相對較新,特別是javascript&jquery,所以我從來沒有使用過JavaScript控制檯,但是我會嘗試當我回家並讓你知道結果。 – coding4fun
JavaScript有一些古怪的範圍規則。如果你的函數在某個全局範圍中沒有被定義,那麼當OnComplete方法運行時它可能不存在。 – StriplingWarrior