Search code examples
asp.netasp.net-web-api

ASP.NET Web Api: The requested resource does not support http method 'GET'


I've got the following action on an ApiController:

public string Something()
{
    return "value";
}

And I've configured my routes as follows:

routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

In the beta, this worked just fine, but I just updated to the latest Release Candidate and now I'm seeing errors on calls like this:

The requested resource does not support http method 'GET'.

Why doesn't this work anymore?

(I suppose I could get rid of {action} and just make a ton of controllers, but that feels messy.)


Solution

  • If you have not configured any HttpMethod on your action in controller, it is assumed to be only HttpPost in RC. In Beta, it is assumed to support all methods - GET, PUT, POST and Delete. This is a small change from beta to RC. You could easily decore more than one httpmethod on your action with [AcceptVerbs("GET", "POST")].