Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Panggilan Ajax dalam ASP.NET MVC Tidak Mencetuskan Makluman jika Data Tiada?

Mengapa Panggilan Ajax dalam ASP.NET MVC Tidak Mencetuskan Makluman jika Data Tiada?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 22:22:03471semak imbas

Why Doesn't an Ajax Call in ASP.NET MVC Trigger an Alert if Data is Missing?

Membuat Panggilan Ajax Mudah ke Pengawal dalam ASP.NET MVC

Apabila cuba membuat panggilan Ajax dalam ASP.NET MVC, seseorang mungkin menghadapi cabaran seperti yang ditunjukkan dalam senario di bawah:

Masalah

Matlamatnya ialah untuk memaparkan makluman dengan data yang dikembalikan daripada kaedah pengawal. Walau bagaimanapun, amaran tidak menyala.

Pengawal:

public class AjaxTestController : Controller
{
    public ActionResult FirstAjax()
    {
        return Json("chamara", JsonRequestBehavior.AllowGet);
    }   
}

Lihat:

<code class="html"><script type="text/javascript">
    $(document).ready(function () {
        var serviceURL = '/AjaxTest/FirstAjax';

        $.ajax({
            type: "POST",
            url: serviceURL,
            data: param = "",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: successFunc,
            error: errorFunc
        });

        function successFunc(data, status) {     
            alert(data);
        }

        function errorFunc() {
            alert('error');
        }
    });
</script></code>

Pemerhatian:

Pada mulanya, panggilan Ajax gagal mencetuskan amaran. Selepas menambah parameter yang tidak berkaitan dan membuat perubahan kaedah dalam pengawal, amaran mula berfungsi dengan betul. Walau bagaimanapun, sebab bagi tingkah laku ini masih tidak jelas.

Penyelesaian

1. Alih Keluar Atribut Data yang Tidak Diperlukan:

Memandangkan tiada data dihantar ke pelayan, atribut data harus dialih keluar daripada panggilan Ajax.

2. Gunakan Sintaks Razor untuk URL:

Dalam kaedah Ajax, gunakan sintaks Razor untuk menjana URL dan bukannya rentetan statik:

<code class="js">$.ajax({
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: successFunc,
    error: errorFunc
});</code>

3. Tambah Paparan Mesej dalam Fungsi Kejayaan:

Dalam fungsi kejayaan, tambahkan mesej yang ingin anda paparkan dalam amaran.

4. Mengendalikan PENYIARAN Data:

Jika anda perlu MENYATAKAN data ke pelayan, tambahkan atribut data dan berikan data yang sesuai dalam panggilan Ajax.

5. Panggilan Ajax yang dikemas kini:

<code class="js">$.ajax({
    type: "POST",
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    data: { a: "testing" },
    dataType: "json",
    success: function() { alert('Success'); },
    error: errorFunc
});</code>

Atas ialah kandungan terperinci Mengapa Panggilan Ajax dalam ASP.NET MVC Tidak Mencetuskan Makluman jika Data Tiada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn