Метод удаления не работает в ASP. NET Core Web API - PullRequest
0 голосов
/ 01 февраля 2020

Я использую ASP. NET Базовый веб-API в моем приложении, метод get и post работает нормально.

Это мой код:

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; 
    }
}

Этот код не работает в почтальоне

Как это решить?

С уважением

Байджу

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

ниже приведен окончательный код, который отлично работает

[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";
            }
        }
0 голосов
/ 01 февраля 2020

Вы должны отправить идентификатор в бэкэнд для удаления. Измените:

[HttpDelete]

На:

 [HttpDelete("{id}")]

И затем в почтальоне, в конце URL, введите номер идентификатора после последнего '/' и отправьте его бэкэнду.

...