MS MVC forma técnicas AJAXifying

Estoy buscando la forma más elegante de ajaxify mis formularios (con jQuery).
¿Cómo haces esto?

Aquí está mi solución (creo que es una solución de mejora progresiva ), usando solo jQuery sin complementos:

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 } } ); }); 

ACTUALIZADO:

Si su respuesta POST es “HTML con formulario”, intente esto:

 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(); } } ); }); } 

Ajaxifique sus formularios … eso es bastante vago.

Si desea enviar un formulario de forma asincrónica, puede usar $ .post () para publicar en una acción de controlador separada.

Ejemplo:

En la vista:

 $.post('<%= Url.Action("DoAjaxCall") %>', $('form').serialize(), function (data) { alert(data.Message); } , "json"); 

En tu controlador:

 public ActionResult DoAjaxCall(YourModel model) { return Json(new { Message = "Your ajax call is working!" }); } 

Eso es lo que estoy usando en al menos algunas de mis formas.

PD: Escribí esto en el editor de texto stackoverflow así que no está realmente probado. Pero como un esquema, debería funcionar.

Checkout JQuery complementos de almacenamiento Estoy seguro de que encontrará que necesita