Я бы хотел использовать параметр OnSuccess AjaxOptions, переданный как аргумент Ajax.BeginForm, чтобы «сделать что-нибудь» после того, как ответ будет полностью получен, а DOM обновлен. Насколько я могу отказаться от MSDN, это то, что делает этот вариант.Asp.NET MVC AjaxOptions OnSuccess срабатывает .. слишком рано?
В моем приложении скрипт OnSuccess срабатывает слишком рано, сразу после отправки запроса. Я немного сплю нить, чтобы лучше видеть результат. Я должен был увидеть сценарий OnSuccess (предупреждение), который был запущен после этого времени сна, скажем, 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.
post ... ваш ... код ....! – womp
Код добавлен как (правильно) задан! – ccalboni