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的路由行为,修改控制器选择器。 –