这是我的方法:
[HttpPut("*myUri}")]
public Task<IActionResult> DoSomething(string myString, [FromBody]string[] myIDs)
{
// DO stuff
}
我在请求正文中发送以下JSON:
{
"myIDs": ["1","2","3"]
}
为什么调用API时myID为null?
答案 0 :(得分:0)
您的控制器需要一个字符串数组,但您发送的对象看起来像
{
myIDs: ["1", "2", "3"]
}
尝试发布只是 JSON.stringify(["1", "2", "3"])
,并确保您将内容类型作为应用程序/ json发送
答案 1 :(得分:0)
尝试使用此[FromBody] IEnumerable<string> myIDs
代替[FromBody]string[] myIDs
并将JSON用作["1","2","3"]
答案 2 :(得分:0)
请开始阅读有关Json的内容。也许here?
给定参数[FromBody]string[] myIDs
,它期望像这样的Json:
[
"This is",
"your",
"array of strings."
]
[
和]
定义了一个对象数组。
用你给出的Json:
{
"myIDs": ["1","2","3"]
}
如果你想获得这种类型的Json,请将你的参数改为:
public IActionResult Post([FromBody]myClass this_Is_Just_A_Name)
{
return Ok(this_Is_Just_A_Name);
}
public class myClass
{
public string[] myIDs { get; set; }
}