2014-03-26 58 views
0

現在我正在做一個測試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; 
} 

我一直在玩這個一整天,現在並沒有發現任何解決問題的辦法。 任何人都可以幫忙嗎?

謝謝

+0

您使用的是Web API還是MVC? – James

+0

使用asp net mvc 4 web應用程序創建的項目,比選擇web api – Jorge

+0

在這種情況下,您應該使用'System.Web.Http.HttpPost'屬性,而不是MVC。 – James

回答

0

玉傢伙,這是第二個queston我張貼在計算器又一次的答案非常簡單,真的很愚蠢。

變量員工是一個全球性的員工,我沒有清理它,我只是在每次再次調用員工時都清理數據集。

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

對不起,浪費時間:p

0

這可能是因爲緩存嘗試通過POST方法添加此屬性

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] 
+0

將mvc更改爲http並添加了此項,每次請求POST方法時仍然保留結果:\ 它可能與數據集有關,但我找不到任何方法清除它:\ – Jorge

+0

好吧,這是第二個問題我發佈在stackoverflow和答案是非常簡單,真的很愚蠢。 變量Employees是一個全局變量,我不清理它,我每次再次調用時都只清理數據集。 我只需要添加Employees.Clear(); 對不起,浪費時間:p – Jorge

相關問題