我是Web API的新手,我不了解如何过滤获取调用。
此方法返回数据库中的所有项目。
// GET: api/LogEntries
public IQueryable<LogEntry> GetLogEntries()
{
return db.LogEntries;
}
此方法返回数据库中的特定项目。
// GET: api/LogEntries/5
[ResponseType(typeof(LogEntry))]
public IHttpActionResult GetLogEntry(int id)
{
LogEntry logEntry = db.LogEntries.Find(id);
if (logEntry == null)
{
return NotFound();
}
return Ok(logEntry);
}
所以现在我想过滤返回的记录,所以我创建了这个方法,但它不起作用,因为调用了特定的item方法。我似乎错过了一个概念,希望你能指出我更清楚的理解。感谢
// GET: api/LogEntries
public IQueryable<LogEntry> GetLogEntries(string levelID)
{
int levIdInt;
if (Int32.TryParse(levelID, out levIdInt))
{
return db.LogEntries.Take(300).Where(l => (int)l.Level == levIdInt).OrderByDescending(d => d.TimeStamp);
}
return db.LogEntries.Where(i => i.ID < 0);
}
答案 0 :(得分:1)
您需要指定该方法的路线
[Route("api/LogEntries/Level/{levelID}"]
public IQueryable<LogEntry> GetLogEntries(string levelID)
{}
有关路由的更多信息,请访问http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2