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

时间:2016-10-22 10:12:57

标签: c# asp.net-web-api fiddler

我使用Visual Studio 2015创建了新的ASP.Net Web API项目,在通过 Fiddler 测试 POST 命令的同时,我得到了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);
    }

2 个答案:

答案 0 :(得分:1)

我认为问题是因为没有返回值void

根据asp.net:

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

  

如果返回类型为void,则Web API只返回状态代码为204(无内容)的空H​​TTP响应。

答案 1 :(得分:0)

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

您将获得201,因为Get方法无效,但这并不意味着POST无效。如果您想要回复某些内容,可以在“添加到”列表之后将返回类型更改为IHttpActionResultreturn Ok(Strings),这将返回列表并返回200状态。您甚至可以将一些代码放入检查列表中添加工作然后返回Ok()或BadRequest()。