Я застрял с контроллером 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 Form, и я также звоню из Postman, но по-прежнему те же ошибки.
Я думаю, вы просто перепутали '' Post' и Put'. Вы действительно можете использовать одно и то же действие для обоих глаголов, но я лично считаю, что это не очень хорошая практика в веб-приложении (Post для создания нового объекта, Put должен использоваться для его обновления). Однако вы можете использовать оба глагола для доступа к действию. Например, есть [эта ссылка] (https://www.exceptionnotfound.net/using-http-methods-correctly-in-asp-net-web-api/). – Carsten
It's Put, я сделал typo .. :( –
Как вы создаете свой запрос 'PUT'? Через пользовательский клиент? Через веб-страницу? Через инструмент dev, такой как Postman/Fiddler? –