JSON dan jQuery: Melepasi Tatasusunan Kompleks kepada Pengawal ASP.NET MVC
Dalam senario di mana kita perlu menghantar pelbagai objek kompleks ke tindakan pengawal, adalah penting untuk mempertimbangkan keserasian antara kod sisi klien dan sisi pelayan. Mari kita mendalami pendekatan yang diterangkan oleh Steve Gentile untuk menyelesaikan cabaran ini.
Pemprosesan Sebelah Pelanggan
Kod jQuery:
function getplaceholders() { // Collect data into an array var results = new Array(); ... var postData = { widgets: results }; // Send data to the controller with JSON serialization $.ajax({ url: '/portal/Designer.mvc/SaveOrUpdate', ... data: $.toJSON(widgets), ... }); }
Di sini , data dikumpulkan ke dalam tatasusunan, dibalut dalam objek JSON, dan bersiri untuk dihantar ke pelayan.
Konfigurasi Tindakan Pengawal
Tindakan pengawal ASP.NET MVC:
[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))] public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
Atribut [JsonFilter] menyesuaikan tindakan untuk menerima data JSON. Ia mentakrifkan nama parameter ("widget") dan menentukan jenis data JSON yang dijangkakan (List
Atribut Penapis JSON Tersuai
public class JsonFilter : ActionFilterAttribute { ... public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Request.ContentType.Contains("application/json")) { // Deserialize JSON data from request body string inputContent = ...; var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); // Assign the deserialized object to the specified parameter filterContext.ActionParameters[Param] = result; } } }
Atribut Penapis JSON Tersuai JsonFilter memintas permintaan dengan jenis kandungan JSON, menyahsiri penggunaan data JSON Kelas JsonConvert Json.NET dan memberikan hasilnya kepada parameter tindakan yang sesuai.
Dengan menggunakan pendekatan ini, kami mewujudkan komunikasi antara data pihak klien dan tindakan pihak pelayan dengan berkesan, membenarkan pengawal memproses tatasusunan kompleks objek yang diterima dalam format JSON.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Tatasusunan JSON Kompleks dengan Cekap daripada jQuery ke Pengawal ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!