【问题标题】:Delete method is not working in ASP.NET Core Web API删除方法在 ASP.NET Core Web API 中不起作用
【发布时间】:2020-05-17 17:58:17
【问题描述】:

我在我的应用程序中使用 ASP.NET Core Web API 获取和发布方法工作正常。

这是我的代码:

public class DepartmentController : Controller
{
       [HttpGet]
       [Route("api/Departments")]
       public List<Department> Get()
       {
            DepartmentDbContext Db = new DepartmentDbContext();
            List<Department> Departments = Db.departments.ToList();
            return Departments;
       }

       [HttpPost]
       [Route("api/Departments")]      
       public string Post([FromBody] Department department)
       {
            DepartmentDbContext Db = new DepartmentDbContext();      

            try
            {
                    Db.departments.Add(department);
                    Db.SaveChanges();
                    // return department;
                    return "Added Successfully";
            }
            catch (Exception)
            {
                return "Record Not Added";
            }    
       }
}

这段代码运行良好,在邮递员中也运行良好。

但删除方法不起作用 - 这是代码:

[HttpDelete]
[Route("api/Departments")]
public int Delete(int id)
{
    DepartmentDbContext Db = new DepartmentDbContext();

    try
    {
        Department dept = Db.departments.Where(x => x.DepartmentID == id).FirstOrDefault();
        Db.departments.Remove(dept);
        Db.SaveChanges();
        return 1; 
    }
    catch(Exception)
    {
        return -1; 
    }
}

此代码在邮递员中不起作用

【问题讨论】:

  • “不工作”是什么意思?您如何检查该方法是否有效?
  • 在使用 Postman 进行测试时,您是否使用了 HTTP 动词 delete
  • “此代码在邮递员中不起作用”是什么意思?请求是否到达后端?请设置断点,然后重试。请求的响应是什么?

标签: asp.net-core-webapi


【解决方案1】:

您必须将 id 发送到后端才能删除。 变化:

[HttpDelete]

收件人:

 [HttpDelete("{id}")]

然后在邮递员中,在 URL 的末尾将 id 号放在最后一个 '/' 之后并将其发送到后端。

【讨论】:

  • @mohammed Ali Feghhi 感谢您的回复,有一个小错误并解决了。正确答案是[HttpDelete] [Route("api/Departments/{id}")]
【解决方案2】:

以下是可以正常工作的最终代码

[HttpDelete]
        [Route("api/Departments/{id}")]
        public int Delete(int id)
        {
            DepartmentDbContext Db = new DepartmentDbContext();
            try
            {
                Department dept = Db.departments.Where(x => x.DepartmentID == id).FirstOrDefault();
                Db.departments.Remove(dept);
                Db.SaveChanges();
                return 1; //"Record Deleted Successfully";
            }
            catch(Exception)
            {

                return -1; // "Record Not deleted";
            }
        }

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 2021-11-07
    • 2019-04-30
    • 1970-01-01
    • 2021-07-26
    • 2018-02-21
    • 2014-06-13
    • 2020-03-30
    • 2013-12-25
    相关资源
    最近更新 更多