101 votos

El recurso solicitado no admite HTTP método 'GET'

Mi ruta está configurado correctamente, y mis métodos de la decoración de la etiqueta. Todavía se me pone "El recurso solicitado no admite HTTP método 'GET'" mensaje?

[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 }
);

226voto

Maggie Ying Puntos 3804

Por favor, utilice los atributos del Sistema.Web.Http de espacio de nombres en su WebAPI acciones:

    [System.Web.Http.AcceptVerbs("GET", "POST")]
    [System.Web.Http.HttpGet]
    public string Auth(string username, string password)
    {...}

La razón por la que no funciona es porque se estaban utilizando los atributos que son de la MVC espacio de nombres System.Web.Mvc. Las clases en la System.Web.Http espacio de nombres para WebAPI.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X