POST GetAll方法不能清除以前的请求数据
问题描述:
现在我正在做一个测试API我使用Postman扩展来测试谷歌浏览器上的POST方法。 我在我的本地服务器中有一个数据库,我在框架4.0中使用VS2010。POST GetAll方法不能清除以前的请求数据
我的API现在有方法GetByID完美工作。
在每次发送新请求之前,它们都会清除数据,但是在发出POST请求时不会发生这种情况。
每次我做出请求的前一个结果停留在那里(如果我改变了请求的参数结果数保持不变但数据变化)。
private List<Employee> Employees = new List<Employee>();
SqlConnection con;
SqlDataAdapter da;
DataSet ds = new DataSet();
public IEnumerable<Employee> Post(string param1, string param2)
{
ds.Clear();
con = new SqlConnection("Server=xxxx; Database=x; Trusted_Connection=True;");
da = new SqlDataAdapter("select * from Employee", con);
da.Fill(ds);
foreach (DataRow dr in ds.Tables[0].Rows)
{
Employees.Add(new Employee() {
FirstName = dr[0].ToString(),
LastName = dr[1].ToString(),
Id = int.Parse(dr[2].ToString()),
Designation = dr[3].ToString()
});
}
return Employees.Where(e => e.FirstName == param1)
.Where(e => e.LastName == param2);
}
我的员工控制器
static readonly EmployeeDetails repository = new EmployeeDetails();
[System.Web.Mvc.HttpPost]
public IEnumerable<Employee> Search(string param1, string param2)
{
//Employee search = repository.Post(param1, param2);
IEnumerable<Employee> search = repository.Post(param1, param2);
if (search == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return search;
}
我一直在玩这个一整天,现在并没有发现任何解决问题的办法。 任何人都可以帮忙吗?
谢谢
答
玉家伙,这是第二个queston我张贴在计算器又一次的答案非常简单,真的很愚蠢。
变量员工是一个全球性的员工,我没有清理它,我只是在每次再次调用员工时都清理数据集。
我只需要添加Employees.Clear();
对不起,浪费时间:p
答
这可能是因为缓存尝试通过POST方法添加此属性
[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]
您使用的是Web API还是MVC? – James
使用asp net mvc 4 web应用程序创建的项目,比选择web api – Jorge
在这种情况下,您应该使用'System.Web.Http.HttpPost'属性,而不是MVC。 – James