簡體   English   中英

使用JSON和JQuery將數組發布到C#Web Api后端

[英]Posting Array using JSON & JQuery to a C# Web Api back end

我有以下JQuery:

var dataToSend = {
    list: [{ Code: 'ABC', BusinessDate: '31-Jan-2012' }, { Code: 'DEF', BusinessDate: '31-Jan-2012' }]    
};

$.ajax({
    type: 'POST',
    traditional: true,
    url: '/api/dashboard/post/',
    dataType: 'json',
    data: JSON.stringify( dataToSend), 
    success: function (result) {
        alert('done');
    },
    error: function (result) {
        alert(result);
    }
});

以及服務器上的以下方法:

 [System.Web.Http.HttpPost]
        public void Post(List<MyObject> list)
        {

        }

MyObjects定義:

public class MyObject
{

    /// <summary>
    /// 
    /// </summary>
    public string Code { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string BusinessDate { get; set; }

}

該方法被命中,但在集合中未顯示任何結果。 如果我將參數更改為:

 [System.Web.Http.HttpPost]
        public void Post(MyObject list)
        {
           // return new JsonResult();
        }

並且僅通過集合中的第一項,我毫無問題地通過web api方法接收到了帶有數據的對象,這只是在嘗試傳遞數組時才出現問題。

Fidler將其顯示為JSON:

{ “清單”:[{ “代碼”: “ABC”, “BusinessDate”: “31-JAN-2012”},{ “代碼”: “DEF”, “BusinessDate”: “31-JAN-2012”}] }

有人可以解釋一下我做錯了什么,所以我無法接收陣列嗎?

JSON所發送的本質上是這樣的:一個具有名為list的屬性的對象,然后在其中具有對象列表。 您有一個不必要的重定向。 嘗試刪除list:從要發送的數據中直接將列表作為參數發送。

添加您的標題。 content-type :application/json

這應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM