Я бы хотел использовать параметр OnSuccess для AjaxOptions, переданный как аргумент Ajax.BeginForm, чтобы "сделать что-то" после получения полного ответа и обновления DOM. Насколько я могу отказаться от MSDN, это то, что делает этот вариант.
В моем приложении OnSuccess script срабатывает слишком рано, сразу после отправки запроса. Я немного сплю нить, чтобы лучше видеть результат. Я должен был увидеть OnSuccess script (предупреждение), выпущенное после этого времени сна, скажем, 2 секунды. Я использую Firebug, чтобы увидеть, что происходит под капотом, и все, что я вижу, это: я нажимаю кнопку (отправляю внутри формы ajax), отображается предупреждение (за 2 секунды до ожидания), через 2 секунды firebug показывает запрос-ответ и ничего происходит больше.
Где я ошибаюсь?
Спасибо заранее, т
Некоторые примеры кода, как правильно спросил (я начал пустое новое решение с использованием шаблона Asp.NET MVC в VS):
Главная/Индекс:
<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.