ホームページ >バックエンド開発 >C++ >jQuery Ajax を使用してオブジェクトの配列を MVC コントローラーに正常に渡すにはどうすればよいですか?

jQuery Ajax を使用してオブジェクトの配列を MVC コントローラーに正常に渡すにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-21 17:26:09402ブラウズ

How to Successfully Pass an Array of Objects to an MVC Controller Using jQuery Ajax?

jQuery Ajax を使用してオブジェクトの配列を MVC コントローラー メソッドに渡す

jQuery の ajax() 関数を使用してオブジェクトの配列を MVC コントローラーのメソッドに渡そうとすると、コントローラー メソッドの「things」パラメーターが空である状況が発生することがあります。この問題は、パラメータ タイプとして List を使用している場合でも発生することがあります。

この問題の解決策は次のとおりです:

<code class="language-javascript">things = JSON.stringify({ 'things': things });</code>

この方法で「物」配列を JSON オブジェクトでラップすると、配列をコントローラー メソッドに正常に渡すことができます。

この実装の完全なコードは次のとおりです:

<code class="language-javascript">$(document).ready(function () {
    var things = [
        { id: 1, color: 'yellow' },
        { id: 2, color: 'blue' },
        { id: 3, color: 'red' }
    ];      

    things = JSON.stringify({ 'things': things });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        type: 'POST',
        url: '/Home/PassThings',
        data: things,
        success: function () {          
            $('#result').html('"PassThings()" successfully called.');
        },
        error: function (response) {          
            $('#result').html(response.responseText); // 使用 response.responseText 获取错误信息
        }
    }); 
});</code>
<code class="language-csharp">public void PassThings(List<Thing> things)
{
    // 处理things数据
}

public class Thing
{
    public int Id { get; set; }
    public string Color { get; set; }
}</code>

この実装の 2 つの重要な側面に注意してください:

  1. ajax() 関数で次の設定を使用することが重要です:
<code class="language-javascript">        contentType: 'application/json; charset=utf-8',
        dataType: 'json',</code>
  1. オブジェクトの配列を MVC コントローラー メソッドに渡すには、次の JSON 形式を使用します:
<code class="language-javascript">
JSON.stringify({ 'things': things })
```  并且在`failure`回调函数中,使用 `response.responseText` 获取服务器返回的错误信息,以更准确地处理错误。


通过以上步骤,您可以确保将对象数组正确地传递给您的MVC控制器。</code>

以上がjQuery Ajax を使用してオブジェクトの配列を MVC コントローラーに正常に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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