Mi ruta está configurada correctamente y mis métodos tienen la etiqueta decorada. Sigo recibiendo el mensaje "El recurso solicitado no admite el método HTTP 'GET'".
[System.Web.Mvc.AcceptVerbs("GET", "POST")]
[System.Web.Mvc.HttpGet]
public string Auth(string username, string password)
{
// Décoder les paramètres reçue.
string decodedUsername = username.DecodeFromBase64();
string decodedPassword = password.DecodeFromBase64();
return "value";
}
Aquí están mis rutas:
config.Routes.MapHttpRoute(
name: "AuthentificateRoute",
routeTemplate: "api/game/authentificate;{username};{password}",
defaults: new { controller = "Game",
action = "Auth",
username = RouteParameter.Optional,
password = RouteParameter.Optional },
constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { controller = "Home", id = RouteParameter.Optional }
);
c#
routing
asp.net-web-api
Rushino
fuente
fuente
solo usa este atributo
no necesito esta línea de código:
fuente
En mi caso, la firma de la ruta era diferente del parámetro del método. Tenía id, pero estaba aceptando documentId como parámetro, eso causó el problema.
fuente
Estaba experimentando el mismo problema. Ya tenía 4 controladores funcionando y funcionando bien, pero cuando agregué este, devolvió "El recurso solicitado no admite el método HTTP 'GET'". Probé todo aquí y en un par de otros artículos relevantes, pero me fue indiferente la solución ya que, como Dan B. mencionó en respuesta a la respuesta, ya tenía otros funcionando bien.
Me alejé por un tiempo, regresé e inmediatamente me di cuenta de que cuando agregué el Controlador, estaba anidado en la clase "Controlador" y no en la clase "ApiController" en la que estaban mis otros Controladores. Supongo que elegí la opción de andamio incorrecta para compilar el archivo .cs en Visual Studio. Así que incluí el espacio de nombres System.Web.Http, cambié la clase principal y todo funciona sin los atributos o enrutamiento adicionales.
fuente