我有一個表中的「東西」的列表,並且每行中都有一個Details鏈接,它將在每個可見行下的隱藏行中加載項目的詳細信息,再次單擊鏈接將隱藏該項目的詳細信息。顯示/隱藏用簡單的jQuery完成fadeToggle()
取消MVC基於條件的Ajax.Actionlink
當前細節鏈接是調用指定操作的Ajax.Actionlink()
。
一切工作正常,除了當我想隱藏細節,它再次調用操作,調用邏輯,調用數據庫。
顯然這是資源的浪費,所以我想要一種方式來取消ajax請求時滿足條件;條件是「細節」容器是可見的。
@Ajax.ActionLink("Details", "DetailsPartial",
new AjaxOptions {
OnBegin = "function(){
checkLoaded('" + string.Format("DetailContainer{0}", item.Id) + "');
}",
HttpMethod = "GET",
UpdateTargetId = string.Format("Detail{0}", item.Id),
OnSuccess = "function(){
showElement('" + string.Format("DetailContainer{0}", item.Id) + "');
}",
InsertionMode = InsertionMode.Replace
})
我懷疑我應該做與OnBegin的工作,但我還沒有發現魔術的命令取消Ajax調用。
隨着checkLoaded()
函數,我正在檢查.css('display') == 'none'
的傳遞元素ID,所以我需要在那裏取消。
我已經搜索了一段時間的解決方案,但找不到一個,也許是因爲我不知道如何去問它聰明。幫助表示讚賞。
你給了我一個新的視角,謝謝 – romeozor 2011-08-13 20:00:59
似乎沒有工作。我打電話給確認對話框並返回結果。即使用戶選擇取消並返回false,操作仍然通過:( – Alex 2012-03-07 15:42:02