ホームページ バックエンド開発 C++ JSON を使用して複雑なオブジェクトの配列を ASP.NET MVC コントローラーに渡す方法

JSON を使用して複雑なオブジェクトの配列を ASP.NET MVC コントローラーに渡す方法

Jan 01, 2025 am 02:28 AM

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

複雑なオブジェクトの配列を ASP.NET MVC コントローラーに渡す

このシナリオでは、複雑なオブジェクトの配列を 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? Mar 03, 2025 pm 05:52 PM

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

GULC:Cライブラリはゼロから構築されています GULC:Cライブラリはゼロから構築されています Mar 03, 2025 pm 05:46 PM

GULC:Cライブラリはゼロから構築されています

c言語関数形式文字ケース変換手順 c言語関数形式文字ケース変換手順 Mar 03, 2025 pm 05:53 PM

c言語関数形式文字ケース変換手順

C言語関数の定義と呼び出しルールは何ですか、そして C言語関数の定義と呼び出しルールは何ですか、そして Mar 03, 2025 pm 05:53 PM

C言語関数の定義と呼び出しルールは何ですか、そして

明確な使用法とフレーズ共有 明確な使用法とフレーズ共有 Mar 03, 2025 pm 05:51 PM

明確な使用法とフレーズ共有

メモリに保存されているC言語関数の返品値はどこにありますか? メモリに保存されているC言語関数の返品値はどこにありますか? Mar 03, 2025 pm 05:51 PM

メモリに保存されているC言語関数の返品値はどこにありますか?

C標準テンプレートライブラリ(STL)はどのように機能しますか? C標準テンプレートライブラリ(STL)はどのように機能しますか? Mar 12, 2025 pm 04:50 PM

C標準テンプレートライブラリ(STL)はどのように機能しますか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? Mar 12, 2025 pm 04:52 PM

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?

See all articles