Melalukan Tatasusunan Objek Kompleks kepada Pengawal ASP.NET MVC
Dalam senario ini, anda berusaha untuk menghantar tatasusunan objek kompleks kepada tindakan pengawal. Untuk mencapai ini, beberapa langkah diperlukan.
Menyediakan Paparan
Kod yang disediakan dalam soalan sudah menyediakan tatasusunan objek. Kuncinya di sini ialah mengubah tatasusunan ini menjadi format JSON yang boleh dihuraikan oleh pengawal. Untuk melakukan ini, gunakan fungsi $.toJSON() daripada pustaka jQuery, seperti yang dilihat dalam kod paparan penyelesaian yang dipertingkatkan:
function getplaceholders() { // ... var postData = { widgets: results }; $.ajax({ // ... data: $.toJSON(widgets), // ... }); }
Menghiasi Tindakan Pengawal
Untuk tindakan pengawal menerima dan memproses data JSON, tindakan itu perlu dihiasi dengan atribut tersuai. Dalam kes ini, kami menggunakan atribut JsonFilter:
[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))] public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
Sifat Param menentukan nama parameter yang akan menerima data JSON dan JsonDataType mentakrifkan jenis data yang dijangkakan untuk penyahserikatan.
Fungsi Atribut Tersuai
Pelaksanaan JsonFilterAttribute memintas permintaan HTTP dan menyemak sama ada ia mengandungi kandungan JSON. Jika ya, ia menyahsiri JSON ke dalam jenis data yang ditentukan menggunakan JsonConvert.DeserializeObject daripada Json.NET dan memberikannya kepada parameter tindakan yang sepadan.
public class JsonFilter : ActionFilterAttribute { // ... public override void OnActionExecuting(ActionExecutingContext filterContext) { // ... var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); filterContext.ActionParameters[Param] = result; } }
Dengan mengikuti langkah ini, anda boleh berjaya melepasi tatasusunan kompleks objek dari pandangan anda ke pengawal ASP.NET MVC anda.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Tatasusunan Objek Kompleks ke Pengawal ASP.NET MVC Menggunakan JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!