Apabila cuba membuat panggilan Ajax dalam ASP.NET MVC, seseorang mungkin menghadapi cabaran seperti yang ditunjukkan dalam senario di bawah:
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.
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!