【发布时间】:2014-05-04 16:48:30
【问题描述】:
现在我正在做一个测试 API,我正在使用 Postman 扩展来测试 google chrome 上的 POST 方法。 我的本地服务器中有一个数据库,我正在使用带有框架 4.0 的 VS2010。
我的 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;
}
我已经玩了一整天了,但没有找到任何解决问题的方法。 有人可以帮忙吗?
谢谢
【问题讨论】:
-
您使用的是 Web API 还是 MVC?
-
使用 asp net mvc 4 web 应用程序创建项目,而不是选择 web api
-
在这种情况下,您应该使用
System.Web.Http.HttpPost属性,而不是 MVC 属性。 -
一条与您的帖子无关的注释。最好写一个 where caluse 而不是两个: Where(e=>e.FirstName==param1 && e.LastName==param2)。
-
Christos 我试过了不接受我真的需要添加另一个.Where