【问题标题】:Delete request to ASP.NET Core ApiController not working对 ASP.NET Core ApiController 的删除请求不起作用
【发布时间】:2018-11-27 19:10:59
【问题描述】:

我有如下所示的 apiController。而且,我正在通过邮递员发送delete 请求。但是,我的删除请求无法访问方法。但是,get 方法运行良好。这个错误的原因可能是什么?

我的邮递员网址是: http://localhost:5004/api/Student/DeleteStudent/23

[ApiController]
[Route("api/[controller]/[action]")]
public class StudentController : ControllerBase
{
    [HttpDelete("DeleteStudent/{studentId}")]
    public async Task<ServiceResult> DeleteStudent(long studentId)
    {
      return await studentService.DeleteStudent(studentId);
    }

    [HttpGet]
    public async Task<ServiceResult> GetStudents(int studentType)
    {
        return await studentService.GetStudents(studentType);
    }
}

【问题讨论】:

  • 请分享您指向api的角度代码
  • 我用邮递员寄送。 @YashSoni 。我的网址在我的问题中。
  • 所以这不是角度问题@HasanOzdemir ...
  • 您的控制台是否出现任何交叉错误
  • 我正在服用 404 未找到。我想是因为api/[controller]/[action]。但是,我不知道如何解决它?

标签: c# angular typescript postman


【解决方案1】:

DeleteStudent()方法上使用[HttpDelete("{studentId}")]而不是[HttpDelete("DeleteStudent/{studentId}")],如下:

[HttpDelete("{studentId}")]
public async Task<ServiceResult> DeleteStudent(long studentId)
{
  return await studentService.DeleteStudent(studentId);
}

我已经在 Postman 的测试项目中对其进行了测试,并且效果很好!

【讨论】:

  • 你的网址是这样的吗? @TanvirArjel localhost:5004/api/Student/DeleteStudent/23
  • 是的!这是。网址应该是这样的!此外不要忘记在邮递员上选择请求删除!
  • 太棒了!听说它解决了你的问题!也谢谢你。
  • 我可以删除 [HttpDelete("{studentId}")]。因为,它到处都在重复。 @TanvirArjel。仅前面的示例 [HttpDelete] 就像 get 请求。
  • 不!你不能因为你将路由参数名称重写为studentId,而在通用配置中它可能只是id。如果您真的想删除它,那么您的方法应该是DeleteStudent(long id),具体取决于通用配置。
猜你喜欢
  • 2018-11-26
  • 1970-01-01
  • 2019-04-30
  • 2020-03-30
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
相关资源
最近更新 更多