JSON と jQuery: 複雑な配列を ASP.NET MVC コントローラーに渡す
複雑なオブジェクトの配列を 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 オブジェクト内でラップされ、シリアル化されて送信されます。
コントローラー アクションの構成
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 データを逆シリアル化します。 Json.NET の JsonConvert クラスを使用して、結果を適切なアクション パラメーターに割り当てます。
このアプローチを利用することで、クライアント側のデータとサーバー側のアクションの間の通信が効果的に確立され、コントローラーがアクションを処理できるようになります。 JSON 形式で受信したオブジェクトの複雑な配列。
以上が複雑な JSON 配列を jQuery から ASP.NET MVC コントローラーに効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。