webapi路由配置小筆記
最近寫乙個webapi介面供前端呼叫,在webapiconfig.cs
裡進行路由配置時,出現了問題,花了不少時間。
現有2個controller,乙個passagecontroller,用於passage類的相關資料處理,乙個videocontroller,用於video類相關的資料處理。
為方便說明問題,這裡對2個類做簡化處理。
passagecontroller
public
class
passagecontroller
:apicontroller
}
videocontroller:
public
class
videocontroller
:apicontroller
}
有問題的路由配置:
}呼叫介面
將獲得id為0的passage資訊,這個沒有問題。
呼叫介面
將發生找不action
的錯誤
現在,將兩個路由配置的位置調換,
}呼叫介面
將發生找不action
的錯誤
呼叫介面
將獲得id為0的passage資訊,這個沒有問題。
可見,哪乙個路由放在前面,哪乙個的action便可以正常訪問到。這個錯誤和webapi的路由匹配原則有關。
要想兩個路由都能同時工作,可以在routetemplate
裡加乙個標誌,變為api/passageapi///
和api/videoapi///
,
這樣就可以在呼叫api
的url
裡加乙個辨別controller
的元素。兩個路由便可以正常工作了。
WebApi路由約束
自 路由約束讓我們可以限制模板引數的匹配方式。一般的語法是 route users public user getuserbyid int id route users public user getuserbyname string name 如果引數int,則選中第乙個getuserbyid,否...
開源 NodeJS仿WebApi路由
用過webapi或asp.net mvc的都知道微軟的路由設計得非常好,十分方便,也十分靈活。雖然個人看來是有的太靈活了,team內的不同開發很容易使用不同的路由方式而顯得有點混亂。不過這不是重點,我在做node專案的時候就覺得不停的用use 來指定路由路徑很煩人,所以用typescript寫了這個...
基於Attribute的Web API路由設定
路由對於mvc應用程式來說都是至關重要的乙個部門,不管是asp.net mvc或者ruby on rails 當然還有其它的,我只熟悉這兩個 asp.net mvc自帶的路由配置是在global.asax檔案中,這裡給大家介紹乙個基於屬性的路由配置工具 attributerouting,它不僅可以適...