ASP.Net Web API Post 命令不保存值

ASP.Net Web API Post Command not saves values

我使用 Visual studio 2015 创建了新的 ASP.Net Web API 项目,同时通过 POST 命令测试 Fiddler 我收到 201 无内容的响应。 之后,当我在 fiddler 上使用 GET 命令时,新值不会被保存。 我不只是 运行 在调试模式下发布它。

    static List<string> Strings = new List<string>() {
        "value0", "value1", "value2"
    };

 // GET api/values
    public IEnumerable<string> Get()
    {
        return Strings;
    }

 // POST api/values
    public void Post([FromBody]string value)
    {
        Strings.Add(value);
    }

我认为问题是因为没有 return 值 void

根据 asp.net:

https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/action-results

If the return type is void, Web API simply returns an empty HTTP response with status code 204 (No Content).

你的代码对我有用并添加到列表中。确保您发送的内容类型 application/json'the string'(我使用 Postman 测试 POST)。

您将收到 201,因为 Get 方法无效,但这并不意味着 POST 无效。如果你想要一些东西,你可以在添加到列表之后将 return 类型更改为 IHttpActionResultreturn Ok(Strings),这将 return 列表和 200 状态。您甚至可以将一些代码放入检查列表中,然后 return Ok() 或 BadRequest()。