来自Microsoft的CRUD tutorial for their Web API:
最后,添加一种按类别查找产品的方法:
public IEnumerable<Product> GetProductsByCategory(string category)
{
return repository.GetAll().Where(
p => string.Equals(p.Category, category, StringComparison.OrdinalIgnoreCase));
}
如果请求URI具有查询字符串,则Web API会尝试将查询参数与控制器方法上的参数进行匹配。因此,“api / products?category = category”形式的URI将映射到此方法。
有没有办法让这个通用?如GetProductsByWhateverIsInTheURI(string WhateverIsInTheURI)或“api / products?whatever = whatever”?
谢谢。
答案 0 :(得分:2)
我不确定我是否会将其描述为“通用”,但你可能只是拥有一条完全取消参数绑定的全能路线。这将是一种“在一种方法中接受任何类型的参数”的方法。
public IEnumerable<string> Get()
{
List<string> retval = new List<string>();
var qryPairs = Request.GetQueryNameValuePairs();
foreach (var q in qryPairs)
{
retval.Add("Key: " + q.Key + " Value: " + q.Value);
}
return retval;
}