0

我正在使用Web Api 2.2,並試圖實現以下功能: 我有幾個控制器,並且我想要一個看起來像 控制器/ {controller}/action/{action} - 我想要特定的方法來捕獲這個調用,無論它是POST還是GET(包括它的參數)。支持Web API的通用路由

例如:

HTTP POST /controller/users/action/getuser 
{"user_id": 1234} 

HTTP GET /controller/users/action/getuser?user_id=1234 

,其中方法在不航線定義:

public User getuser(int user_id) 
{ 
... 
} 

我無法做到這一點。 援助將不勝感激。 TNX

回答

0

您可以在您的App_Start默認路由 - > RouteConfig.cs

根據方法的RegisterRoutes應該有一個默認路由的制定者。 你要設置類似於:

routes.MapRoute(
      name: "Default", 
      url: "controller/{controller}/action/{action}", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 
+0

關於它的思考,認爲有一些約定: 當您使用「的getUser」作爲方法名用戶控制下,他將解析它作爲一個GET方法應用於控制器。 可能最容易的方法是在控制器上使用路由前綴屬性,並在每個方法上使用路由屬性。 否則,您必須修改所有webapi的路由行爲,修改控制器選擇器。 –