Вероятно, проще всего использовать плагин jQuery Form для достижения большей части этой функциональности, если у вас есть форма, которая выглядит следующим образом: -
<%= Ajax.Form(new AjaxOptions {
Url = theUrl,
Method = theMethod,
Confirm = confirmFunction,
InsertionMode = InsertionMode.Before,
OnBegin = onBegin,
OnComplete = onComplete,
OnFailure = onFailure,
OnSuccess = onSuccess,
UpdateTargetId = elementId,
LoadingElementId = loadingElementId
});
Это будет соответствовать вызову подключаемого модуля формы: -
$("#yourFormId").ajaxForm({
url : theUrl,
type : theMethod,
beforeSubmit : confirmFunction,
beforeSend : onBegin,
complete : onComplete,
success : onSuccess,
error : onFailure
});
Единственными проблемами являются репликация свойств LoadingElementId, UpdateTargetId и InsertionMode.
Если вы хотите скопировать InsertionMode.Replace, вы можете передать дополнительный целевой параметр плагину ajaxForm. Если вы хотите скопировать оставшуюся функциональность, вам придется написать свои собственные обработчики событий beforeSend, success и complete.
Что-то вроде следующего будет имитировать форму с InsertionMode.Before, UpdateTargetId = "Test", LoadingElementId = "Loader": -
$("#yourFormId").ajaxForm({
beforeSend : function() { $("#Loader").show(); },
complete : function() { $("#Loader").hide(); },
success: function(result) { $(result).prependTo("#Test"); }
});