Chciałbym użyć opcji OnSuccess dla AjaxOptions przekazanej jako argument Ajax.BeginForm, aby "zrobić coś", gdy odpowiedź zostanie całkowicie odebrana, a DOM zaktualizowany. O ile mogę odłączyć się od MSDN, to jest to, co robi ta opcja.Asp.NET MVC AjaxOptions OnSuccess wystrzeliwuje ... za wcześnie?
W mojej aplikacji skrypt OnSuccess uruchamia się zbyt wcześnie, natychmiast po wysłaniu żądania. Przez chwilę kładę się spać, aby lepiej widzieć rezultat. Powinienem zobaczyć skrypt OnSuccess (alert) wystrzelony po tym czasie snu, powiedzmy, 2 sekundy. Używam Firebuga, aby zobaczyć, co dzieje się pod maską, i wszystko, co widzę, to: kliknę przycisk (przesłać w formularzu ajax), pojawia się alert (2 sekundy przed oczekiwaniem), po 2 sekundach firebug pokazuje żądanie-odpowiedź i nic więcej się dzieje.
Gdzie się mylę?
Dzięki z góry, mt
Niektóre przykładowy kod, jak słusznie zapytał (zacząłem pusty nowego rozwiązania przy użyciu Asp.NET MVC szablon w VS):
widok Home/Index:
<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że być używany jako widok DoLongTask.
post ... twój ... kod ....! – womp
Kod dodany jako (poprawnie) zapytany! – ccalboni