c# - message el recurso solicitado no admite el método http options
El recurso solicitado no admite el método HTTP ''GET'' (1)
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 espacio de nombres MVC System.Web.Mvc
. Las clases en el espacio de nombres System.Web.Http
son para WebAPI .
Mi ruta está configurada correctamente y mis métodos tienen la etiqueta decorada. Sigo recibiendo "¿El recurso solicitado no es compatible con el método HTTP ''OBTENER''"?
[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 }
);