首頁 >後端開發 >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>

透過這種方式將「things」陣列包裝在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>

請注意此實作的兩個重要面向:

  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn