У меня есть список «вещи» в таблице, и у меня есть ссылка «Подробности» в каждой строке, которая будет загружать детали элемента в скрытой строке под каждой видимой строкой, повторное нажатие на ссылку скрывает деталипредмет.Отображение / скрытие выполняется с помощью простого jQuery fadeToggle()
. В настоящее время ссылка сведений - это 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'
для переданного идентификатора элемента, и поэтому мне нужно было бы отменить там.
Я некоторое время искал решение, но не смогне могу найти его, возможно, потому что я не знаю, как спросить это умноПомощь приветствуется.