Ich bin mit Web API 2 Controller stecken, von denen ich PUT
Methode aufrufen und es gibt mir einen Fehler, dass Methode nicht erlaubt ist. Ich fügte Codezeilen in Web.config
hinzu, die verhindern, dass WebDAV Methoden blockiert. Ich habe alles versucht, aber es funktioniert nicht. Es ist wahrscheinlich ein Problem mit meiner PUT
Methode in einem Controller.Web API 2 - Methode jetzt erlaubt (405) für PUT
Hier ist mein Controller-Code:
public IHttpActionResult Put(int id, [FromBody]ArticleModel model) {
var article = _articleService.UpdateArticle(model);
return Ok<ArticleModel>(article);
}
Dies ist ein Code aus, wo ich setzen nennen: Ich Client als http definiert
response = await client.PutAsJsonAsync("api/article/2", articleModel);
vor diesem Code und hinzugefügt benötigten Eigenschaften und rief andere Controller-Methoden (GET, POST, DELETE), sie alle arbeiten. Dies ist von Windows Form App, und ich rufe auch von Postman, aber immer noch den gleichen Fehler.
Ich glaube, Sie nur gemischt 'Post' und' Put'. Sie können in der Tat die gleiche Aktion für beide Verben verwenden, aber ich persönlich denke, das ist keine gute Übung in einer Web-Anwendung (Post ist da, um eine neue Entität zu erstellen, Put sollte verwendet werden, um es zu aktualisieren). Sie können jedoch beide Verben verwenden, um auf die Aktion zuzugreifen. Für ein Beispiel gibt es [diesen Link] (https://www.exceptionnotfound.net/using-http-methods-correctly-in-asp-net-web-api/). – Carsten
Es ist Put, ich machte Tippfehler .. :( –
Wie erstellen Sie Ihre 'PUT' Anfrage? Durch einen benutzerdefinierten Client? Durch eine Webseite? Durch ein Entwickler-Tool wie Postman/Fiddler? –