【发布时间】:2022-01-27 21:48:46
【问题描述】:
我正在构建一个 ASP.NET Core 5.0 Web API 应用程序,正如我在标题中提到的那样尝试从数据库中删除记录时遇到问题;我收到来自HttpDelete 请求的错误405 Method Not Allowed 响应。
PS:我已经添加了 services.AddCors() 和 app.UseCors() 与默认策略。
这是删除方法代码
public bool deleteLivreById(int id)
{
Livre l = _db.Livres.Find(id);
_db.Livres.Remove(l);
_db.SaveChanges();
return true;
}
这是控制器内部的HttpDelete 方法
[HttpDelete("{id}/delete")]
public bool deleteLivreById(int id)
{
return _objGererLivre.deleteLivreById(id);
}
最后这是导航到HttpDelete Url时来自控制台的图片
编辑:这是我的控制器的完整代码
namespace GestionLivre.Controllers
{
[ApiController]
[Route("test")]
public class LivreController : Controller
{
private IGererLivre _objGererLivre;
public LivreController(IGererLivre gererLivre)
{
_objGererLivre = gererLivre;
}
[HttpGet]
public JsonResult getLivres()
{
return Json(_objGererLivre.getLivres());
}
[HttpDelete("{id}/delete")]
public bool deleteLivreById(int id)
{
return _objGererLivre.deleteLivreById(id);
}
}
}
【问题讨论】:
-
你能显示你的控制器路由吗?
-
另外你可能应该添加 [FromRoute] 属性为:
public bool getById([FromRoute]int id) -
我刚刚编辑了帖子并添加了完整的控制器代码,我也尝试添加 [FromRoue] 但仍然遇到同样的问题
标签: c# request asp.net-core-webapi asp.net-core-5.0 http-method