为什么 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]属性,这意味着你需要在请求体中传递数据,而不是在查询参数中