Asp.NET MVC AjaxOptions OnSuccess срабатывает .. слишком рано?

Я хотел бы использовать параметр OnSuccess AjaxOptions, передаваемый в качестве аргумента Ajax.BeginForm, чтобы "сделать что-то" & quot; после того, как ответ полностью получен и DOM обновлен. Насколько я могу понять от MSDN, это то, что делает этот вариант.

В моем приложении сценарий OnSuccess срабатывает слишком рано, сразу после отправки запроса. Я уложил ветку на некоторое время, чтобы лучше увидеть результат. Я предполагал, что сценарий OnSuccess (предупреждение) будет запущен после этого времени ожидания, скажем, 2 секунды. Я использую Firebug, чтобы увидеть, что происходит под капотом, и все, что я вижу, это: я нажимаю кнопку (отправить внутри формы ajax), отображается предупреждение (за 2 секунды до ожидаемого), через 2 секунды firebug показывает запрос-ответ и больше ничего не происходит.

Где я не прав?

Заранее спасибо, Монтана

Пример кода, как правильно спросили (я запустил пустое новое решение, используя шаблон Asp.NET MVC в VS):

Home/Index view:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<div id="divPlaceholder">
<% 
    using (Ajax.BeginForm("DoLongTask", "Home", 
    new AjaxOptions() {
        UpdateTargetId = "divPlaceholder", 
        InsertionMode = InsertionMode.Replace,
        OnSuccess = "alert('onsuccess fired')"
    })) 
{
%>
<input type="submit" value="button" />
<% } %>
</div>
</asp:Content>

HomeController

public ActionResult DoLongTask()
{
    if (Request.IsAjaxRequest())
    {
        System.Threading.Thread.Sleep(2000);
        return View();
    }
    else
    {
        throw new NotSupportedException();
    }
}

Я думаю, что этого достаточно, чтобы воспроизвести поведение. Пустое частичное представление может использоваться как представление DoLongTask.

Ответы на вопрос(5)

Ваш ответ на вопрос