Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2024-10-18 22:22:03
asal
534 orang telah melayarinya

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);
    }   
}
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan