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

JSON を使用して、jQuery から ASP.NET MVC コントローラーに複雑なオブジェクトの配列をポストする方法

Mary-Kate Olsen
リリース: 2025-01-02 15:01:37
オリジナル
273 人が閲覧しました

How to Post an Array of Complex Objects from jQuery to an ASP.NET MVC Controller Using JSON?

jQuery と ASP.NET MVC: JSON を使用した複雑なオブジェクトの配列のポスト

問題:

複雑なオブジェクトの配列を ASP.NET MVC コントローラーに渡すにはどうすればよいですか? jQuery AJAX リクエストですか?コントローラー アクションはどのパラメーターを受け入れる必要がありますか?

解決策:

jQuery と JSON を使用して複雑なオブジェクトの配列をコントローラーにポストするには、次の手順に従います:

  1. 配列をシリアル化して、 JSON:

    JSON.stringify() を使用して、オブジェクトの配列を JSON 文字列に変換します。

  2. リクエスト ヘッダーを設定します:

    application/json に Content-Type ヘッダーを指定します。 charset=utf-8.

  3. $.ajax() メソッドを使用します:

    $.ajax() を使用して AJAX リクエストを作成します。メソッドを作成し、データとして JSON データを提供しますパラメータ.

コントローラー アクション:

コントローラー アクションをカスタム属性 (JsonFilter) で装飾して、JSON データを逆シリアル化します。属性ではパラメータ名と 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;
        }
    }
}
ログイン後にコピー

例:

JavaScript:

function getplaceholders() {
    var widgets = [];
    // ... populate the array

    $.ajax({
        url: '/portal/Designer.mvc/SaveOrUpdate',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(widgets),
        contentType: 'application/json; charset=utf-8'
    });
}
ログイン後にコピー

コントローラーのアクション:

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
{
    // ...
}
ログイン後にコピー

以上がJSON を使用して、jQuery から ASP.NET MVC コントローラーに複雑なオブジェクトの配列をポストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート