WebApi "Die angeforderte Ressource nicht unterstützt http-Methode "LÖSCHEN"
Mit WebApi angularjs-Projekt und versucht, zu löschen-Funktion als
`
[HttpDelete]
public String DeleteCountry(string cntryId)
{
if (cntryId != null)
{
return repoCountry.DeleteCountry(Convert.ToInt32(cntryId));
}
else
{
return "0";
}
}
js Funktion
$http({
method: "delete",
url: '/api/Country/DeleteCountry/',
dataType: "json",
data: { cntryId: cntryId }
}).then(function (response) {});
Hier bin ich immer Ausnahme
{"Message":"The requested resource does not support http method 'DELETE'."}
Einfüge -, update-und get-Funktionen korrekt arbeiten.Giv eine Lösung ist und warum es passiert bei löschen nur
- Können Sie versuchen, entfernen Sie die "data" - Objekt, und fügen Sie die cntryId an die url? Meine Vermutung ist, dass die ASP.NET routing ist auf der Suche nach einem HttpDelete action ohne Parameter (da es nicht in der url).
- Ist der parameter nicht markiert als [FromBody], so muss es in der URL, wenn ich mich richtig erinnere.
- das ist richtig, standardmäßig Bindung sieht für "einfachen" Typen von der URL-query-Parameter.
- Haben Sie versucht, meine Lösung? sollte es funktionieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schmücken Sie Ihre Methode mit der
Route
Attribut (ich sehe das gib mir mehr Kontrolle über das routing-Verhalten im web-API) und Weitergabe Ihrer Daten Parameter wie der Konstruktor Argumente in diesem format:[HttpDelete, Route("{cntryId}")
in Sie Winkel-controller können Sie genau dies tun:
ist nicht eine webapi Problem ist eher das format der Abfrage .
die Nachricht besagt, dass
does not support http method 'DELETE'
da die webapi delete-Methode erwartet eine id als parameter. und die route hat das folgende formatrouteTemplate: "api/{controller}/{id}",
um Ihr Problem zu beheben versuchen, verwenden Sie fiddler, um abzufangen, Ihre Anfrage und stellen sicher, dass Ihre entf-Anforderung wird gesendet, wie
'/api/Country/DeleteCountry/'+cntryId,
Option 1:
Option 2:
Beste Option:
API
Javascript
Unter der Annahme, dass u nicht ändern Sie die Standard-routing. Die gleichen Fehler, die passieren können, wenn u nicht zu erklären [HttpDelete] - Attribut für die Aktion in webAPI. Bitte versuchen Sie die folgenden