0
所以,我有三個不同的優惠措施:MVC網頁API路由多獲取有不同的參數
public IHttpActionResult Get(){
//get all entries
}
public IHttpActionResult Get(int id){
//get an entry based on an ID
}
public IHttpActionResult Get(int page =0, int pageSize = 2){
//Pagination:get entries by pages of 2 entries
}
起初我用了兩個第一方法工作需要使用此路由是罰款:
config.Routes.MapHttpRoute("Default",
"api/{controller}/{id}",
defaults: new { controller = "project", id = RouteParameter.Optional }
);
添加具有兩個參數的第三個Get操作後,它開始返回一個異常:找到與請求匹配的多個操作。順便說一句,我發送頁面參數作爲查詢字符串,如下所示:api/project/?page=0
。 我明白,最後兩個動作是問題的根源,路由器無法決定哪一個匹配,但我還沒有能夠拿出正確的路由功能。 雖然,我已經使用屬性路由哪種解決了問題:Route [「api/project/{page:int}/{pageSize:int}」]我更感興趣的是使用舊的路由方式來解決這個問題。 對於冗長的信息,我表示歉意,並提前感謝您的時間。
THX的快速回答隊友,可惜我沒有工作:(我想我需要集中精力使另一路由功能的具體的尋呼行動:/ – Orochi1992 2015-01-22 14:52:38
你可以使用只有一個路由,與ID,頁面和pagesize作爲可選 (int?id,int?page,int?pageSize) – 2015-01-22 15:58:04
嗯我不認爲這是可行的,因爲其中一個只獲取每次通過id檢索一個對象國家一次返回一個包含幾個對象的頁面。 – Orochi1992 2015-01-23 20:01:11