Web API Post方法不保存数据

时间:2017-09-13 13:19:30

标签: javascript c# asp.net ajax asp.net-web-api

我有一个简单的Web API应用程序,可以将GETPOST数据发送给用户。 数据是一个简单的字符串数组["foo", "bar"]。如果我尝试向Web API发送POST数据,则数据会成功读入POST方法,但在通过其他调用返回到Web API时,之前发布的数据将不再存在。

如何将数据保存在每个POST的服务器上。

这就是我服务器上的内容:

[HttpPost]
public HttpResponseMessage Post([FromBody]string value)
{
    data.Add(value);
    var msg = Request.CreateResponse(HttpStatusCode.Created, "Added element");
    msg.Headers.Location = new Uri(Request.RequestUri + "/" + (data.Count - 1).ToString());
    return msg;
}

使用POST发送data = John Doe会将其添加到List<String>被叫数据中,但在返回服务器时不会保留。

这就是我调用服务器的方式:

$.ajax({
    url: url,
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(data), // data = "John Doe"
    success: function (data) {
        console.log(data);
    },
    error: function (data) {
        console.log(data);
    }
});

基本上,在向"John Doe"发送POST时,如何使List<String> data = ["foo", "bar", "John Doe"]在服务器上保持不变。制作$window.localStorage

1 个答案:

答案 0 :(得分:2)

List<String> data =根本无法工作并且持续存在,因为您希望在API控制器中定义该列表,并且在每次请求后都会销毁它,因为每次请求都会获得新的控制器实例。

如果你真的想通过使用任何类型的缓存机制分布式缓存(如Cache或非分布式缓存)来持久化Redis数据。