Asp.NET MVC AjaxOptions OnSuccess odpala .. za wcześnie?

Chciałbym użyć opcji OnSuccess AjaxOptions przekazanej jako argument Ajax.BeginForm, aby „zrobić coś” po całkowitym odebraniu odpowiedzi i zaktualizowaniu DOM. O ile mogę wykluczyć z MSDN, to właśnie robi ta opcja.

W mojej aplikacji skrypt OnSuccess uruchamia się zbyt wcześnie, natychmiast po wysłaniu żądania. Przez chwilę kładę się spać, aby lepiej zobaczyć wynik. Miałem zobaczyć skrypt OnSuccess (alert) wystrzelony po tym czasie snu, powiedzmy 2 sekundy. Używam Firebug, aby zobaczyć, co się dzieje pod maską, a wszystko, co widzę, to: klikam przycisk (przesyłam wewnątrz formularza ajax), wyświetla się alert (2 sekundy przed oczekiwaniem), po 2 sekundach firebug pokazuje odpowiedź na żądanie i nic więcej się dzieje.

Gdzie się mylę

Z góry dziękuję, mt

Jakiś przykładowy kod, jak poprawnie zapytano (uruchomiłem nowe, puste rozwiązanie przy użyciu szablonu Asp.NET MVC w VS):

Strona główna / Widok indeksu:

<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();
    }
}

Myślę, że to wystarczy, aby odtworzyć zachowanie. Pusty widok częściowy można wykorzystać jako widok DoLongTask.

questionAnswers(5)

yourAnswerToTheQuestion