首頁 >後端開發 >C++ >如何使用 JSON 和 jQuery 將複雜物件陣列發佈到 ASP.NET MVC 控制器?

如何使用 JSON 和 jQuery 將複雜物件陣列發佈到 ASP.NET MVC 控制器?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-02 20:25:38916瀏覽

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

使用JSON 和jQuery 將復雜對像數組發佈到ASP.NET MVC 控制器

問題:

如何將複雜物件陣列傳遞給ASP.NET MVC控制器動作,以及控制器動作應該接受哪些參數?

控制器動作方法:

控制器動作方法應該有一個 IList 類型的參數。

客戶端程式碼:

使用jQuery,將物件陣列轉換為JSON 字串,並透過AJAX 請求使用正確的資料類型和內容類型標頭將其發送到控制器。

客戶端程式碼- 增強:

為了更好地處理JSON 內容,請使用Json.NET 函式庫並將JsonDataType 設定為要反序列化的陣列類型。這允許 ASP.NET MVC 操作直接綁定到反序列化對象,無需手動解析。

ASP.NET MVC 控制器操作裝飾:

裝飾控制器操作自訂屬性,如[JsonFilter],用於攔截傳入的JSON 請求並將正確的物件反序列化到操作中參數。

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;
        }
    }
}

以上是如何使用 JSON 和 jQuery 將複雜物件陣列發佈到 ASP.NET MVC 控制器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn