миграция от microsoft Ajax. BeginForm к jQuery

я медленно перемещался от microssoft ajax к jQuery для всего моего материала ajax. единственной вещью, которую я оставил, являются некоторые формы, которые отправляют по использованию Microsoft ajax при помощи Ajax. Beingform. Это - asp.net mvc сайт, так отправьте, должен назвать действие сообщения контроллера.

Что является самым простым способом преобразовать это в jQuery, таким образом, я могу удалить свою ссылку на Microsoft ajax.

6
задан leora 28 February 2010 в 00:21
поделиться

4 ответа

Вероятно, проще всего использовать плагин 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"); }
});
7
ответ дан 10 December 2019 в 00:37
поделиться
  1. Загрузите и включите плагин jquery form .
  2. Замените Ajax.BeginForm на Html.BeginForm
  3. Зарегистрируйте форму:

     $ (function () {
     $ ('# formId'). AjaxForm (); 
    }); 
     
  4. Используйте обратный вызов успеха для обновления DOM после отправки формы. Этот шаг не является обязательным:

     $ (function () {
     $ ('# formId'). AjaxForm ({
    success: function (data) {
     $ (' #someplaceholder '). html (данные); 
    } 
    }); 
    }); 
     
3
ответ дан 10 December 2019 в 00:37
поделиться

Вы можете изменить поведение отправки ваших форм с помощью 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
});
0
ответ дан 10 December 2019 в 00:37
поделиться

submit должен вызывать действие сообщения контроллера.

вы можете просто сделать то же самое, используя простой javascript ...

если вы добавите кнопку linkButton

<asp:LinkButton runat="server" id="lnkAddOrder" 
    Text="Add Order" onclick="lnkAddOrder_Click" />

, которую вы увидите в предварительном просмотре браузера, когда вы перейдете по кнопке ссылки в левом нижнем углу браузера, который он вызовет метод javascript.

просто используйте этот метод в своих вызовах!

__doPostBack( [Control ID], [Arguments] );

пример страницы:

http://pastebin.com/JaN9ngH9


Отредактировано

Извините, только теперь я вижу MVC, его не было, когда я читал его, или я просто ошибочно предполагаю: - /

0
ответ дан 10 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: