簡體   English   中英

無法將JavaScript對象發布到asp.net Web API端點

[英]Unable to post JavaScript object to asp.net web api end point

我在ASP.NET WEB API應用程序中有一個端點,如下所示:

        [HttpPost]
        public dynamic Save(string userId, List<MyObject> data)
        {
            return null;
        }

public class MyObject
    {
        public string name { get; set; }
        public List<itemAttribute> items { get; set; }
    }

public class itemAttribute
    {
        public int id { get; set; }
        public string typeName { get; set; }
        public string fullName { get; set; }
        public bool Checked { get; set; }
    }

我正在嘗試發布以下JavaScript對象

data = [
{
    "name": "One",
    "items": [
        {
            "fullName": "name",
            "Checked": true,
            "typeName": "type 1",
            "id": 1
        },
        {
            "fullName": "nametwo",
            "Checked": true,
            "typeName": "some type 2",
            "id": 2
        }
    ]
}
    ]

當我命中端點時, data以空列表的形式出現。 我看不到任何特定的錯誤。 請幫忙。

現在我正在使用Firefox的REST Client發布數據

在此處輸入圖片說明

您不應該嘗試傳遞多個參數。 將簽名更改為此:

public dynamic Save([FromBody] List<MyObject> data)

另外,在將對象傳遞給Web API之前,請嘗試對其進行字符串化:

JSON.stringify(data);

您必須更改兩項才能使其正常工作:
1st:將發布方法簽名更改為:

[HttpPost]
public dynamic Save(string userId, [FromBody]List<MyObject> data) {

第二:從您的json中刪除data = 它應該看起來像:

[
{
    "name": "One",
    "items": [
        {
            "fullName": "name",
            "Checked": true,
            "typeName": "type 1",
            "id": 1
        },
        {
            "fullName": "nametwo",
            "Checked": true,
            "typeName": "some type 2",
            "id": 2
        }
    ]
}
]

data =使modelbinder感到困惑,並且您的列表為null。

暫無
暫無

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

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