使用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中文網其他相關文章!