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

如何使用 JSON 將複雜物件陣列傳遞到 ASP.NET MVC 控制器?

Susan Sarandon
發布: 2025-01-01 02:28:09
原創
281 人瀏覽過

How to Pass Arrays of Complex Objects to ASP.NET MVC Controllers Using JSON?

將複雜物件陣列傳遞到ASP.NET MVC 控制器

在此場景中,您尋求將物件陣列傳遞給控制複雜器動作。為此,需要執行幾個步驟。

準備視圖

問題中提供的程式碼已經準備了一個物件陣列。這裡的關鍵是將這個陣列轉換為控制器可以解析的 JSON 格式。為此,請使用jQuery 庫中的$.toJSON() 函數,如解決方案改進的視圖程式碼所示:

function getplaceholders() {
    // ...
    var postData = { widgets: results };
    $.ajax({
        // ...
        data: $.toJSON(widgets),
        // ...
    });
}
登入後複製

裝飾控制器操作

為了讓控制器動作接受並處理JSON數據,需要用自訂屬性來修飾。在本例中,我們使用 JsonFilter 屬性:

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
登入後複製

Param 屬性指定將接收 JSON 資料的參數名稱,JsonDataType 定義反序列化所需的資料類型。

自訂屬性功能

JsonFilterAttribute 實作攔截 HTTP 請求並檢查是否包含 JSON 內容。如果是這樣,它會使用 Json.NET 中的 JsonConvert.DeserializeObject 將 JSON 反序列化為指定的資料類型,並將其指派給對應的操作參數。

public class JsonFilter : ActionFilterAttribute
{
    // ...
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // ...
        var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
        filterContext.ActionParameters[Param] = result;
    }
}
登入後複製

按照以下步驟,您可以成功傳遞複雜的陣列物件從您的視圖到您的 ASP.NET MVC 控制器。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板