![](/img/trans.png)
[英]Unable to send a http POST request to ASP.NET web api Controller using javascript
[英]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.