POST GetAll方法不会清除先前请求中的数据

时间:2014-03-26 10:39:21

标签: c# asp.net api postman

现在我正在进行测试API我使用Postman扩展来测试Google Chrome上的POST方法。 我在本地服务器上有一个数据库,我使用VS2010和框架4.0。

我的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;
}

我已经玩了一整天了,并没有找到解决问题的方法。 有人可以帮忙吗?

谢谢

2 个答案:

答案 0 :(得分:0)

可能是因为Cache尝试通过post方法

添加此属性
[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]

答案 1 :(得分:0)

好的家伙,这是我在stackoverflow上发布的第二个问题,而且答案很简单而且非常愚蠢。

变量Employees是一个全局变量,我没有清理它我只是在每次再次呼叫员工时清理数据集。

我只需要添加Employees.Clear();

抱歉浪费时间:p