我被Web API 2控制器卡住,從中調用PUT
方法,它給了我一個錯誤,該方法是不允許的。我在Web.config
中添加了防止WebDAV阻止方法的代碼行。我嘗試了一切,但它不工作。在控制器中,這可能與我的PUT
方法有關。Web API 2 - 方法現在允許(405)PUT
這裏是我的控制器代碼:
public IHttpActionResult Put(int id, [FromBody]ArticleModel model) {
var article = _articleService.UpdateArticle(model);
return Ok<ArticleModel>(article);
}
這是從哪兒我打電話把代碼:
response = await client.PutAsJsonAsync("api/article/2", articleModel);
這個代碼,我定義的客戶端的HTTP和補充需要的屬性之前,並呼籲其他控制器方法(GET,POST,DELETE),它們都可以工作。這是從Windows窗體應用程序,我也從郵遞員調用,但仍然是相同的錯誤。
我認爲你混了'POST'和'Put'。你確實可以對這兩個動詞使用相同的動作,但是我個人認爲這在Web應用程序中並不是一個好習慣(Post用於創建一個新實體,Put應該用於更新它)。但是,您可以使用這兩個動詞來訪問該操作。例如[這個鏈接](https://www.exceptionnotfound.net/using-http-methods-correctly-in-asp-net-web-api/)。 – Carsten
這是Put,我打錯了.. :( –
你怎麼創建你的'PUT'請求?通過自定義客戶端?通過網頁?通過像Postman/Fiddler這樣的開發工具? –