Запрошенный ресурс не поддерживает HTTP метод 'GET'



мой маршрут правильно настроен, и мои методы имеют украшенный тег. Я все еще получаю сообщение "запрошенный ресурс не поддерживает 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 }
);
554   2  

2 ответов:

пожалуйста, используйте атрибуты из системы.Сеть. Http пространство имен в ваших действиях WebAPI:

    [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.

просто используйте этот атрибут

[System.Web.Http.HttpGet]

не нужна эта строка кода:

[System.Web.Http.AcceptVerbs("GET", "POST")]

Comments

    Ничего не найдено.