1

来自 Microsoft 的Web API CRUD 教程:

最后,添加一个按类别查找产品的方法:

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 WhatIsInTheURI) 或“api/products?whatever=whatever”?

谢谢你。

4

1 回答 1

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;
}
于 2013-11-05T22:32:04.250 回答