Pertanyaan MS MVC membentuk teknik AJAXifying [tertutup]


Saya mencari paling elegan cara untuk melakukan ajaxify formulir saya (dengan jQuery).
Bagaimana kamu melakukan ini?


12
2018-05-30 16:40


asal


Jawaban:


Berikut ini adalah solusi saya (saya rasa ini adalah solusi Peningkatan progresif solusi), hanya menggunakan jQuery tanpa plugin apa pun:

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

DIPERBARUI:

Jika tanggapan POST Anda adalah "HTML with form", maka coba ini:

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

12
2018-05-30 17:00



Ajaxify your forms ... itu sangat tidak jelas.

Jika Anda ingin mengirimkan formulir secara asinkron, Anda dapat menggunakan $ .post () untuk memposting ke aksi pengontrol terpisah.

Contoh:

Dalam tampilan:

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

Di pengontrol Anda:

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

Itulah yang saya gunakan dalam beberapa bentuk saya setidaknya.

P.S .: Saya menulis ini di editor teks stackoverflow sehingga tidak benar-benar diuji. Tetapi sebagai garis besar, seharusnya berhasil.


6
2018-05-30 16:57



Periksa Penyimpanan plugin JQuery Saya yakin Anda akan menemukan yang Anda butuhkan


0
2018-05-30 16:47