Событие OnSuccess на вызове ajax не вызывается - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть ajax-ссылка для удаления элементов в моем списке.

Вот представление:

@Ajax.ActionLink("Test", "Delete", new { projectID = item.ProjectID }, new AjaxOptions
{
       Confirm = "Are you sure you want to delete this item?",
       HttpMethod = "DELETE",
       OnSuccess = "function() { alert('ok'); }"
})

Вот контроллер действий:

    [AcceptVerbs(HttpVerbs.Delete)]
    public ContentResult Delete(int projectID)
    {
        Project proj = m_ProjectBusiness.GetProject(projectID);

        if (proj != null)
        {
            m_ProjectBusiness.DeleteProject(proj);
        }

        return null;
    }

Отображается подтверждающее сообщение.

Контроллер действий вызывается.

Вид отображается обратно

НО событие OnSuccess не вызывается!

Ответы [ 4 ]

2 голосов
/ 04 января 2013

Убедитесь, что вы включили следующий скрипт на свою страницу:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript">         </script>

и что вы включили ненавязчивый JavaScript в вашем файле web.config:

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

Это то, что делает Ajax. * Помощниками, такими как Ajax.BeginForm, проверки для работы.

уважает Ajax.BeginForm не вызывает onSuccess

2 голосов
/ 30 декабря 2011

Может быть, часть запроса не выполнена (хотя это было бы странно). Я надеюсь, что это процесс "все или ничего", вы пытались реализовать свойство OnFailure ?

Я нашел хорошую точку зрения о том, что здесь означает успех https://stackoverflow.com/a/1183985/208565, хотя ваш не вызывается вообще.Было бы хорошо увидеть код состояния, который возвращается, если вызывается OnFailure.

0 голосов
/ 30 декабря 2011

Скорее всего, вы не вернете правильный ответ, который ajax интерпретирует и понимает. Попробуйте использовать консоль отладчика, чтобы увидеть точный ответ, и исправьте его соответствующим образом.

0 голосов
/ 30 декабря 2011

Я думаю, что это должно быть делегировано в C # смысл, а не реализация:

Проверьте эту ссылку http://squarewidget.com/Delete-Like-a-Rock-Star-with-MVC3-Ajax-and-jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...