A publicação do API do MVC na Web com dados JSON me dá um erro 404
Eu tenho uma API da Web no MVC4. Estou recebendo um 404 ao postar dados usando ajax e não entendo o porquê.
LanguageController:
[AcceptVerbs("POST")]
public void Delete(string id)
{
Guid guid = Guid.Parse(id);
Language language = db.Languages.Find(guid);
db.Languages.Remove(language);
db.SaveChanges();
}
Roteamento:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
}
}
E javascript (usando AngularJS):
this.delete = function (lang) {
$http({
method: "POST",
url: "/api/language/delete",
data: JSON.stringify({ id: lang.id })
})
.success(function (response) {
return true;
})
.error(function (response) {
return false;
});
};
Eu recebo esta mensagem de erro:
**{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:32166/api/language/delete'.","MessageDetail":"No action was found on the controller 'Language' that matches the request."}**
Eu só não entendo porque, parece que deveria funcionar. Eu sinto que estou perdendo uma informação vital.