1
我正在嘗試將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不允許的方法。
我試着發送URL中的參數和查詢字符串,並且它們都是相同的響應。當我試着查詢字符串的版本,我已經修改了路線是
[GET("dictionaries?dictionaryID={dictionaryID}&page={page}
我也試着改變從dictionaries
初始字dictionary
,以避免與其他兩個GET航線任何含糊之處,但仍然沒有成功。
documentation for AttributeRouting只提及與參數約束(由於WebHost框架而不適用於我)的查詢字符串,並未提及查詢字符串如何用於路由。
任何人都可以告訴我如何使用這兩個參數來實現第三條路線,還是必須放棄AttributeRouting或嘗試使用它自己的控制器?
謝謝基蘭,現在完美的工作。我認爲AttributeRouting的GET屬性允許我刪除WebAPI的HttpGet屬性 - 該GET取代了HttpGet - 但顯然這不是真的。 – awj
這是AR的一個已知問題。 * IActionHttpMethodProvider *在Web API RTM中是內部的,這在這裏引起了問題。在Web API vNext中,它已被更改爲public,所以一旦發佈,就不再需要這個雙重聲明。更多信息https://github.com/mccalltd/AttributeRouting/issues/83 –