Asp.net-Mvc
如何為 MVC 4 Api 製作更多 MapHttpRoutes
我的 API atm 有 2 個 API 路由,但我想添加更多,而且我這樣做的方式似乎相互覆蓋,所以在我粘貼的程式碼中,只有
CreateUser路由有效。public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapHttpRoute( name: "CreateUser", routeTemplate: "api/{controller}/{cUser}", defaults: new { controller = "User", action = "CreateUser", cUser = RouteParameter.Optional }); routes.MapHttpRoute( name: "AllGames", routeTemplate: "api/{controller}/{playerId}", defaults: new { controller = "Game", action = "GetAllGames", playerId = RouteParameter.Optional }); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }); }
我相信
api/{controller}/{cUser}“CreateUser”路由中的模式與其他控制器操作匹配,因為它具有更通用的模式。在路由中使用特定的控制器名稱作為“使用者”(api/User/{cUser})和“遊戲”(api/Game/{playerId})。更具體的路線應該在頂部,更通用的在底部。routes.MapHttpRoute( name: "CreateUser", routeTemplate: "api/User/{cUser}", defaults: new { controller = "User", action = "CreateUser", cUser = RouteParameter.Optional } ); routes.MapHttpRoute( name: "AllGames", routeTemplate: "api/Game/{playerId}", defaults: new { controller = "Game", action = "GetAllGames", playerId = RouteParameter.Optional } );