为什么 webapi 的 post 方法在从 postman 调用时接收类型为 null 的接口参数?
Why the webapi's post method is receiving the parameter of type interface as null when called from a postman?
制作了这个 webapi。
[HttpPost]
public void Post([FromBody] Models.IHero hero)
{
Models.Heroes heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
从 Postman 调用它。
https://localhost:44320/api/values?Id=1&Name=Shankar
但 hero
在方法 returns 中收到 null
。
接口:
public interface IHero
{
int Id { get; set; }
string Name { get; set; }
}
更新:
已将 IHero 转换为英雄 class
public class Hero
{
int Id { get; set; }
string Name { get; set; }
}
并在Post
方法中使用。
public void Post([FromBody] Models.Hero hero)
{
Models.Heroes heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
您不能使用接口,因为控制器应该创建输入参数的实例。它不能从接口创建实例。所以修正你的动作
public void Post([FromBody] Models.Hero hero)
{
var heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
你有[FromBody]属性,这意味着你需要在请求体中传递数据,而不是在查询参数中
制作了这个 webapi。
[HttpPost]
public void Post([FromBody] Models.IHero hero)
{
Models.Heroes heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
从 Postman 调用它。
https://localhost:44320/api/values?Id=1&Name=Shankar
但 hero
在方法 returns 中收到 null
。
接口:
public interface IHero
{
int Id { get; set; }
string Name { get; set; }
}
更新:
已将 IHero 转换为英雄 class
public class Hero
{
int Id { get; set; }
string Name { get; set; }
}
并在Post
方法中使用。
public void Post([FromBody] Models.Hero hero)
{
Models.Heroes heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
您不能使用接口,因为控制器应该创建输入参数的实例。它不能从接口创建实例。所以修正你的动作
public void Post([FromBody] Models.Hero hero)
{
var heroes = new Models.Heroes();
heroes.AddHeroes(hero);
}
你有[FromBody]属性,这意味着你需要在请求体中传递数据,而不是在查询参数中