Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyiarkan Susunan Objek Kompleks dari jQuery ke Pengawal ASP.NET MVC Menggunakan JSON?

Bagaimana untuk Menyiarkan Susunan Objek Kompleks dari jQuery ke Pengawal ASP.NET MVC Menggunakan JSON?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-02 15:01:37295semak imbas

How to Post an Array of Complex Objects from jQuery to an ASP.NET MVC Controller Using JSON?

jQuery dan ASP.NET MVC: Menyiarkan Susunan Objek Kompleks dengan JSON

Masalah:

Bagaimana anda boleh menghantar pelbagai objek kompleks kepada pengawal ASP.NET MVC daripada jQuery permintaan AJAX? Apakah parameter yang harus diterima oleh tindakan pengawal?

Penyelesaian:

Untuk menyiarkan tatasusunan objek kompleks ke pengawal menggunakan jQuery dan JSON, ikut langkah berikut:

  1. Sirikan tatasusunan ke JSON:

    Gunakan JSON.stringify() untuk menukar tatasusunan objek kepada rentetan JSON.

  2. Tetapkan pengepala permintaan:

    Nyatakan pengepala Jenis Kandungan kepada aplikasi/json; charset=utf-8.

  3. Gunakan kaedah $.ajax():

    Buat permintaan AJAX menggunakan $.ajax() kaedah dan menyediakan data JSON sebagai data parameter.

Tindakan Pengawal:

Hias tindakan pengawal anda dengan atribut tersuai (JsonFilter) untuk menyahsiri data JSON. Atribut harus menyatakan nama parameter dan jenis data JSON.

Atribut Tersuai (JsonFilter):

public class JsonFilter : ActionFilterAttribute
{
    public string Param { get; set; }
    public Type JsonDataType { get; set; }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType.Contains("application/json"))
        {
            string inputContent;
            using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream))
            {
                inputContent = sr.ReadToEnd();
            }
            var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
            filterContext.ActionParameters[Param] = result;
        }
    }
}

Contoh:

JavaScript:

function getplaceholders() {
    var widgets = [];
    // ... populate the array

    $.ajax({
        url: '/portal/Designer.mvc/SaveOrUpdate',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(widgets),
        contentType: 'application/json; charset=utf-8'
    });
}

Tindakan Pengawal:

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
{
    // ...
}

Atas ialah kandungan terperinci Bagaimana untuk Menyiarkan Susunan Objek Kompleks dari jQuery ke Pengawal ASP.NET MVC Menggunakan JSON?. 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