在 Web API 中,我有一类类似的结构:
public class SomeController : ApiController
{
[WebGet(UriTemplate = "{itemSource}/Items")]
public SomeValue GetItems(CustomParam parameter) { ... }
[WebGet(UriTemplate = "{itemSource}/Items/{parent}")]
public SomeValue GetChildItems(CustomParam parameter, SomeObject parent) { ... }
}
因为我们可以映射单个方法,所以在正确的地方获得正确的请求非常简单。对于只有一个 GET
方法但也有一个 Object
参数的类,我成功地使用了 IActionValueBinder
。但是,在上面描述的情况下,我得到了以下错误:
Multiple actions were found that match the request:
SomeValue GetItems(CustomParam parameter) on type SomeType
SomeValue GetChildItems(CustomParam parameter, SomeObject parent) on type SomeType
我试图通过覆盖 ApiController
的 ExecuteAsync
方法来解决这个问题,但是到目前为止还没有找到。在这个问题上有什么建议吗?
编辑: 我忘了提到,现在我正试图在 ASP.NET Web API 上移动这个代码,它有一个不同的路由方法。问题是,如何使代码在 ASP.NET Web API 上工作?