Web API Post方法不保存数据

问题描述:

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

如何在每台服务器上保存数据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; 
} 

发送POSTdata = 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"]

+0

数据是控制器上的一个字段。你的控制器是根据请求实例化的,所以'Data'字段在每个请求中都是新的。你需要添加某种持久性。 – Amy

List<String> data =根本无法正常工作,因为您期望会导致该列表在您的API控制器中定义,并且在每次请求之后都会被销毁,因为每次请求您都会得到一个新的控制器实例。

如果你真的想坚持它然后Cache数据通过使用任何种类的缓存机制分布式缓存像Redis或非分布式缓存。