Web Api - 具有复杂类型的 IEnumerable,因为参数为 null
Web Api - IEnumerable with complex type as param is null
我有一个网络 api 方法,如下所示:
[HttpPost]
[Route("message")]
public IHttpActionResult Post(IEnumerable<Email> email)
{
return Ok("message sent");
}
使用 Fiddler,我发送的请求如下所示:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 205
Content-Type: application/json; charset=utf-8
{
"To": "someone@emailaddress.com",
"From": "Tom",
"Body": "Cruise",
"Template":"template"
}
我的电子邮件 class 看起来像这样:
public class Email
{
public string Body { get; set; }
public string From { get; set; }
public string To { get; set; }
public string Template { get; set; }
它命中了我的 API 方法,但它返回 null。我一直在谷歌搜索并尝试 json 请求的所有不同变体,例如:
{
"email":
{
"To": "someone@emailaddress",
"From": "Tom",
"Body": "Cruise",
"Template": "template"
}
}
和许多其他方式,但每次电子邮件参数都为空。我究竟做错了什么?
根据您的要求,您似乎只有 post 一个 Email
对象,因此请将您的方法更改为:
[HttpPost]
[Route("message")]
public IHttpActionResult Post(Email email)
{
return Ok("message sent");
}
此外,您可能需要像这样包装您要发布的电子邮件:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 205
Content-Type: application/json; charset=utf-8
{
"email":{
"To":"someone@emailaddress.com",
"From":"Tom",
"Body":"Cruise",
"Template":"template"
}
}
如果您只想发送一个邮件,您的主机方法参数和 json 数据是错误的
Post 方法
[HttpPost]
[Route("message")]
public IHttpActionResult Post(Email email)
{
return Ok("message sent");
}
Json数据
{
"Body":"body",
"From":"from",
"To":"to",
"Template":"template"
}
或者如果您只想发送更多电子邮件,您的 json 数据是错误的
Json 更多电子邮件的数据
[
{"Body":"body","From":"from","To":"to","Template":"template"},
{"Body":"body1","From":"from1","To":"to1","Template":"template1"},
{"Body":"body2","From":"from2","To":"to2","Template":"template2"}
]
我有一个网络 api 方法,如下所示:
[HttpPost]
[Route("message")]
public IHttpActionResult Post(IEnumerable<Email> email)
{
return Ok("message sent");
}
使用 Fiddler,我发送的请求如下所示:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 205
Content-Type: application/json; charset=utf-8
{
"To": "someone@emailaddress.com",
"From": "Tom",
"Body": "Cruise",
"Template":"template"
}
我的电子邮件 class 看起来像这样:
public class Email
{
public string Body { get; set; }
public string From { get; set; }
public string To { get; set; }
public string Template { get; set; }
它命中了我的 API 方法,但它返回 null。我一直在谷歌搜索并尝试 json 请求的所有不同变体,例如:
{
"email":
{
"To": "someone@emailaddress",
"From": "Tom",
"Body": "Cruise",
"Template": "template"
}
}
和许多其他方式,但每次电子邮件参数都为空。我究竟做错了什么?
根据您的要求,您似乎只有 post 一个 Email
对象,因此请将您的方法更改为:
[HttpPost]
[Route("message")]
public IHttpActionResult Post(Email email)
{
return Ok("message sent");
}
此外,您可能需要像这样包装您要发布的电子邮件:
User-Agent: Fiddler
Host: localhost:3994
Content-Length: 205
Content-Type: application/json; charset=utf-8
{
"email":{
"To":"someone@emailaddress.com",
"From":"Tom",
"Body":"Cruise",
"Template":"template"
}
}
如果您只想发送一个邮件,您的主机方法参数和 json 数据是错误的
Post 方法
[HttpPost]
[Route("message")]
public IHttpActionResult Post(Email email)
{
return Ok("message sent");
}
Json数据
{
"Body":"body",
"From":"from",
"To":"to",
"Template":"template"
}
或者如果您只想发送更多电子邮件,您的 json 数据是错误的
Json 更多电子邮件的数据
[
{"Body":"body","From":"from","To":"to","Template":"template"},
{"Body":"body1","From":"from1","To":"to1","Template":"template1"},
{"Body":"body2","From":"from2","To":"to2","Template":"template2"}
]