I have this 'POST' method

```
[HttpPost]
[System.Web.Mvc.ValidateAntiForgeryToken]
public HttpResponseMessage UpdateProfile(string sAppUser)
{
    MobileProfileModel profileModel= JsonConvert.DeserializeObject<MobileProfileModel>(sAppUser);
    using (ucApp = new UserControllerApplication())
    {
        //this code should match the
        bool success = ucApp.UpdateUserProfile(profileModel);
        var response = Request.CreateResponse<bool>(HttpStatusCode.Created, success);

        string uri = Url.Link("DefaultApi", new { result = success });
        response.Headers.Location = new Uri(uri);
        return response;
    }
}

```

and i calling it like this AJAX 'POST'

```
$.ajax({
    url: "http://mydomain.com/api/User/UpdateProfile",
    data:JSON.stringify(profile),
    type: 'POST',
    contentType: 'application/json',
    //dataType: "json",
    async: false,
    cache: false,
    success: function (data) {
         $.blockUI({ message: "Success" });
    },
    error: function (xhr) {
        alert(xhr.responseText);
    },  
    beforeSend: function() {
       $.blockUI({ message: $("#ajaxLoader") });
    },
    complete: function() {
       $.unblockUI();
    }
});

```

and im getting this error 

```
<Error>
<Message>
The requested resource does not support http method 'GET'.
</Message>
</Error>

```

The problem is Im not calling a GET method and the method isnt marked as a GET either. I am not sure what the issue is.

**UPDATE**
these are my route definitions

```
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    //specific route for just the public views
    routes.MapRoute(
    "publicview",
    "publicview/details/{userName}",
    new { controller = "publicview", action = "details", username = UrlParameter.Optional }
    );

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

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

```

I am executing a Get method on the same controller and it works, this actually the post of that initial get.