JSON と jQuery を含む複雑なオブジェクトの配列を ASP.NET MVC コントローラーにポストする
問題:
複雑なオブジェクトの配列を ASP.NET MVC に渡すにはどうすればよいですかコントローラー アクション、およびコントローラー アクションが受け入れる必要があるパラメーターは何ですか?
コントローラー アクション メソッド:
コントローラー アクション メソッドには、IList
クライアント側コード:
jQuery を使用して、オブジェクトの配列を JSON 文字列に変換し、正しいデータ型とコンテンツ タイプのヘッダーを持つ AJAX リクエストを介してコントローラーに送信します。
クライアント側コード - 強化:
JSON コンテンツをより適切に処理するには、 Json.NET ライブラリを使用し、JsonDataType を逆シリアル化する配列の型に設定します。これにより、ASP.NET MVC アクションが手動解析なしで逆シリアル化されたオブジェクトに直接バインドできるようになります。
ASP.NET MVC コントローラー アクションの装飾:
コントローラー アクションを次のように装飾します。 [JsonFilter] のようなカスタム属性は、受信した JSON リクエストをインターセプトし、正しいオブジェクトをアクションに逆シリアル化します。パラメータ.
JsonFilterAttribute コード:
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 中国語 Web サイトの他の関連記事を参照してください。