С мой сайт :
Теперь Ajax.ActionLink действительно полезен, а Confirm AjaxOption еще больше ... тем не менее, кто хочет эти дерьмовые Javascript Alert в эти дни?
Я занимаюсь разработкой приложения с использованием Ms MVC 2 и использую фантастическую библиотеку JQueryUI для настройки визуальных элементов всех моих элементов. Одно из лучших преимуществ JQueryUI - это диалоговые окна ... типа "Вы уверены, что хотите удалить этот файл? Да / Нет" ... и я хочу использовать их в моем Ajax.ActionLink!
Поскольку я не нашел ответа в сети, я искал простой способ сделать это ... и теперь я публикую его здесь.
Во-первых: прочитайте и внедрите на своей странице приятное руководство, написанное Рикардо Ково: «Подтверждение удаления ASP MVC с помощью Ajax & JQuery UI Dialog» (просто Google)
Я сделал простые изменения в его коде Javascript, просто используя remove () вместо hide ('fast') и применив класс "item" к tr для удаления.
deleteLinkObj.closest("tr").hide('fast')
становится
deleteLinkObj.closest("tr.item").remove();
Теперь, после того, как вы следовали предыдущему уроку, вы готовы заменить
<%: Html.ActionLink([LinkName],[ActionName], new { id = item.Id }, new { @class = "delete-link" })%>
строка с
<%:Ajax.ActionLink([LinkName],[ActionName],[ControllerName],new { id = item.Id },new AjaxOptions{HttpMethod = "Delete" /*You can use Post though*/,OnBegin = "JsonDeleteFile_OnBegin" /*This is the main point!*/}, new { @class = "delete-link" } ) %>
Вы можете использовать метод Post, если хотите, важная вещь здесь - это опция OnBegin, которая вызывает javascript, который предотвращает вызов действия сервера перед
Подтверждение диалога JQueryUI:
<script language="javascript">function JsonDeleteFile_OnBegin(context) {return false;/*Prevent the Ajax.Action to fire before needed*/}</script>
Поместите JavaScript на страницу.
Итак, теперь, что произойдет: когда вы нажмете кнопку «Удалить», он откроет JQueryUI во время вызова функции OnBegin (которая отменяет обычное действие после публикации). В случае «Подтверждение» код Рикардо Ково запустит действие на стороне сервера, а в коде подтверждения «Рикардо Ково» в виде кода подтверждения вы сможете выполнить все действия в случае успеха (например, скрыть удаление строки).
Обратите внимание : с помощью этого метода вы должны управлять функцией для успеха / неудачи в коде JavaScript Ricardo Covo, так как OnSuccess и OnComplete AjaxOptions не будут запускаться вообще (возможно, перезаписаны некоторым кодом ).