tengo un controlador llamado LoginController con un método Get con una firma de:MVC4 Web interfaz API Resto con varios parámetros
public string Get(string Key, string Code, string UserID, string Password)
Quiero ser capaz de invocar con una llamada similar a:
http://localhost:1234/api/Login/KeyValue/CodeValue/UserValue/PasswordValue
No puedo hacer que esto funcione. Si invoco la llamada con:
http://localhost:1234/api/Login?Key=KeyValue&Code=CodeValueUserID=UserValue&Password=PasswordValue
La llamada fue exitosa.
He intentado añadir rutas como la de abajo para Global.asax
routes.MapHttpRoute(name: "Login", routeTemplate: "api/{controller}/{action}/{Key}/{Code}/{UserID}/{Password}",
defaults: new { Key = UrlParameter.Optional, Code = UrlParameter.Optional, UserID = UrlParameter.Optional, Password = UrlParameter.Optional });
o
routes.MapHttpRoute(name: "Login", routeTemplate: "api/{controller}/{Key}/{Code}/{UserID}/{Password}",
defaults: new { Key = UrlParameter.Optional, Code = UrlParameter.Optional, UserID = UrlParameter.Optional, Password = UrlParameter.Optional });
Estos no parecen funcionar. ¿Dónde estoy equivocado o esto es posible? Pude hacer esto en la versión RC de WebApi con MVC3.
estoy de acuerdo, yo necesidad de exponer una API para un tercero por lo que el formato está fuera de mi control. He intentado con lo que sugirió, pero ninguno de los enfoques funciona (agregando GET o especificando acción predeterminada). También intenté agregar [HttpGet] a la etiqueta del controlador. – keitn
Estás en lo correcto. Incorporé erróneamente un método RegisterRoutes a Global.asax (como en MVC3), una vez que lo agregué en RouteConfig.cs todo funciona bien. Gracias. – keitn