首頁 > 後端開發 > C++ > 如何有效地將複雜的 JSON 陣列從 jQuery 傳遞到 ASP.NET MVC 控制器?

如何有效地將複雜的 JSON 陣列從 jQuery 傳遞到 ASP.NET MVC 控制器?

DDD
發布: 2025-01-04 20:26:41
原創
213 人瀏覽過

How Can I Efficiently Pass Complex JSON Arrays from jQuery to ASP.NET MVC Controllers?

JSON 和jQuery:將複雜數組傳遞給ASP.NET MVC 控制器

在我們需要將複雜物件數組傳送到的場景中對於控制器操作,必須考慮客戶端和伺服器端程式碼之間的相容性。讓我們深入研究 Steve Gentile 所描述的解決此挑戰的方法。

客戶端處理

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),
        ...
    });
}
登入後複製

此處,資料被收集到一個陣列中,包裝在一個 JSON物件中,並序列化以傳輸到server.

控制器操作配置

ASP.NET MVC 控制器操作:

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

[JsonFilter] 屬性自訂要接收的操作JSON 資料。它定義參數名稱(「小部件」)並指定預期的 JSON 資料類型 (List)。

自訂JSON 過濾器屬性

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;
        }
    }
}
登入後複製

JsonFilter 攔截JSON 內容類型的請求,使用Json.NET 的JsonConvert 類反序列化JSON 數據,並分配JSON 數據,並分配結果到適當的操作參數。

透過利用這種方法,我們有效地在客戶端資料和伺服器端操作之間建立通信,允許控制器處理以 JSON 格式接收的複雜物件數組。

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

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