Я ищу самый элегантный способ ajaxify моих форм (с помощью jQuery).
Как вы это делаете?
MS MVC формы AJAXifying методы
Ответ 1
Вот мое решение (я думаю, что это Progressive enhancement), используя только jQuery без каких-либо подключаемых модулей:
var form = $('form#YourFormId');
$(':submit', form).click(function (event) {
event.preventDefault();
$.post(form.attr('action'), form.serialize(),
function(data, status) {
if(status == 'success') {
// your code here
}
}
);
});
ОБНОВЛЕНО:
Если ваш ответ POST "HTML с формой", попробуйте следующее:
function ajaxifyForm(form) {
$(':submit', form).click(function (event) {
event.preventDefault();
$.post(form.attr('action'), form.serialize(),
function(data, status) {
if(status == 'success') {
var newForm = $(data);
ajaxifyForm(newForm);
form.after(newForm).remove();
}
}
);
});
}
Ответ 2
Ajaxify ваши формы... это довольно расплывчато.
Если вы хотите отправить форму асинхронно, вы можете использовать $.post() для отправки в отдельное действие контроллера.
Пример:
В представлении:
$.post('<%= Url.Action("DoAjaxCall") %>', $('form').serialize(),
function (data) {
alert(data.Message);
}
, "json");
В вашем контроллере:
public ActionResult DoAjaxCall(YourModel model)
{
return Json(new { Message = "Your ajax call is working!" });
}
Это то, что я использую, по крайней мере, в некоторых моих формах.
P.S.: Я написал это в текстовом редакторе stackoverflow, чтобы он не тестировался. Но как план, он должен работать.
Ответ 3
Оформить заказ Хранилище плагинов JQuery Я уверен, что вы найдете, что вам нужно