я медленно перемещался от microssoft ajax к jQuery для всего моего материала ajax. единственной вещью, которую я оставил, являются некоторые формы, которые отправляют по использованию Microsoft ajax при помощи Ajax. Beingform. Это - asp.net mvc сайт, так отправьте, должен назвать действие сообщения контроллера.
Что является самым простым способом преобразовать это в jQuery, таким образом, я могу удалить свою ссылку на Microsoft ajax.
Вероятно, проще всего использовать плагин 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"); }
});
Ajax.BeginForm
на Html.BeginForm
Зарегистрируйте форму:
$ (function () {
$ ('# formId'). AjaxForm ();
});
Используйте обратный вызов успеха для обновления DOM после отправки формы. Этот шаг не является обязательным:
$ (function () {
$ ('# formId'). AjaxForm ({
success: function (data) {
$ (' #someplaceholder '). html (данные);
}
});
});
Вы можете изменить поведение отправки ваших форм с помощью jQuery.
Пример:
$("#your-form").submit(function() {
$.post($(this).action, function(data) {
//do something with the data
});
return false;
//make sure you return false so the form won't be posted regularly
});
submit должен вызывать действие сообщения контроллера.
вы можете просто сделать то же самое, используя простой javascript ...
если вы добавите кнопку linkButton
<asp:LinkButton runat="server" id="lnkAddOrder"
Text="Add Order" onclick="lnkAddOrder_Click" />
, которую вы увидите в предварительном просмотре браузера, когда вы перейдете по кнопке ссылки в левом нижнем углу браузера, который он вызовет метод javascript.
просто используйте этот метод в своих вызовах!
__doPostBack( [Control ID], [Arguments] );
пример страницы:
Отредактировано
Извините, только теперь я вижу MVC, его не было, когда я читал его, или я просто ошибочно предполагаю: - /