【发布时间】:2013-06-07 14:14:41
【问题描述】:
我正在尝试将 AttributeRouting 添加到我的 WebAPI 项目中。
在一个控制器上,我目前定义了三个 GET 方法:
[GET("dictionaries")]
public IEnumerable<Dictionary> Get()
[GET("dictionaries/{id}")]
public Dictionary GetByID(int id)
[GET("dictionaries/{dictionaryID}/{page}")]
public Dictionary Browse(long dictionaryID, int page)
前两条路由按我的预期工作,但第三条总是返回 405 METHOD NOT ALLOWED。
我已尝试发送 URL 中的参数和查询字符串,两者的响应相同。当我尝试查询字符串版本时,我已将路线修改为
[GET("dictionaries?dictionaryID={dictionaryID}&page={page}
我还尝试将初始单词从 dictionaries 更改为 dictionary 以避免与其他两个 GET 路由产生任何歧义,但仍然没有成功。
documentation for AttributeRouting 仅提及与参数约束相关的查询字符串(由于 WebHost 框架,我无法使用这些查询字符串),并没有提及如何在路由中使用查询字符串。
谁能告诉我如何使用这两个参数实现第三条路线,还是我必须放弃 AttributeRouting 或尝试使用它自己的控制器?
【问题讨论】:
标签: c# asp.net-web-api query-string asp.net-web-api-routing attributerouting