Я создаю свое первое приложение с ASP.NET Web api 2, просто для образовательных целей. Я хочу хранить данные в массиве (я знаю, было бы лучше в БД).Я написал несколько методов get, и они работают нормально, но я не знаю, почему DELETE не работает так, как я ожидал.
Я хотел бы удалить из массива Car с предоставленным идентификатором.После запуска действия он показывает мне, что Автомобиль с определенным идентификатором был удален, но когда я запускаю действие, которое показывает, что все автомобили в массиве кажутся, что автомобили все еще там.
Пожалуйста, найдите код для контроллера ниже.Кто-нибудь знает в чем причина?
using System;
using Cars.Models;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace Cars.Controllers
{
public class carsController : ApiController
{
List<Car> cars = new List<Car>(new Car[]
{
new Car { Id = 1, Name = "Opel", Price = 49999.9 },
new Car { Id = 2, Name = "Fiat", Price = 30000.0 },
new Car { Id = 3, Name = "BMW", Price = 100500.9 }
});
public HttpResponseMessage GetAllCars()
{
return Request.CreateResponse(HttpStatusCode.OK, cars);
}
[HttpDelete]
[Route("api/cars/deletecar/{id}")]
public IHttpActionResult DeleteCar(int id)
{
var car = cars.FirstOrDefault((p) => p.Id == id);
if(car!=null)
{
for(int i=0;i<=cars.Count;i++)
{
if (cars[i].Id==id)
{
cars.RemoveAt(i);
return Ok(cars );
}
}
}
return NotFound();
}
}