请求的资源不支持HTTP方法“GET”
我的路线configuration正确,我的方法有装饰的标签。 我仍然得到“所请求的资源不支持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"; }
这是我的路线:
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 } );
请使用System.Web中的属性。 您的WebAPI操作上的Http命名空间:
[System.Web.Http.AcceptVerbs("GET", "POST")] [System.Web.Http.HttpGet] public string Auth(string username, string password) {...}
它不起作用的原因是因为您正在使用来自MVC命名空间System.Web.Mvc
的属性。 System.Web.Http
命名空间中的类用于WebAPI 。