Solución:
Utilice los atributos de System.Web.Http espacio de nombres en sus acciones WebAPI:
[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 estaba usando los atributos que son del MVC espacio de nombres System.Web.Mvc
. Las clases en el System.Web.Http
los espacios de nombres son para WebAPI.
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.
[Route("Documents/{id}")] <--- caused the webapi error
[Route("Documents/{documentId}")] <-- solved
public Document Get(string documentId)
{
..
}
solo usa este atributo
[System.Web.Http.HttpGet]
no necesito esta línea de código:
[System.Web.Http.AcceptVerbs("GET", "POST")]
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)