我一直在玩新的Web API 2(它看起來很有希望btw),但我有一點點頭痛得到一些路線的工作。 所有工作正常,當我有GetAllUsers/GetUser(int id),但後來當我添加GetUserByName(字符串名稱)和/或GetUserByUsername(字符串用戶名)的東西開始令人毛骨悚然。我知道,INT將是第一個,我也可以重新排序的途徑,但讓我們想象一下以下情形:Web API 2/MVC 5:屬性路由傳遞參數作爲查詢字符串,以在同一控制器上定位不同的動作
用戶可以有一個有效的username=1234
或name=1234
(我知道這是不可能的,但我們需要避免任何可能的情況),我們可能會在數據庫中有一個有效的1234 ID,並且所有的路由都會混淆在一起。
也許這是我們需要在新的WebAPI 2上使用的東西,所以我想我可以帶一個「解決方法」將篩選器作爲querystrings傳遞給同一控制器中的不同動作,例如api/users/?username=1234
(GetUserByUsername)或api/users/?name=1234
(GetUserByName)
但我不能讓querystrings來通過...實際上上面的任何querystring選項被GetAllUsers捕獲。
有沒有人有任何建議/修復該場景?
非常感謝
好極了!現在正在工作。謝謝你...我不知道我在代碼上做了什麼錯誤:p藉此機會,使用公共異步任務獲取(int id)而不是public UserViewModel Get(int ID)?據我所知web api會在管道上使用任務。歡呼聲 –
julianox
可能是這個幫助... http://hanselminutes.com/327/everything-net-programmers-know-about-asynchronous-programming-is-wrong – jd4u
謝謝jd4u:D我錯過了這一集,非常有幫助確實。乾杯 – julianox