Я работаю над WebAPI.удаление продукта по id в webapi
Я хотел бы удалить продукт по id. Однако с моим кодом он удалил все записи. Когда я вводил номер идентификатора, вместо того, чтобы удалять сам идентификатор, он удалял все записи. Могу ли я узнать, что не так с моим кодом? Как я могу улучшить его, чтобы удалить его по id.
productcontroller.cs
function ProductViewModel(product) {
var self = this;
self.Id = product.Id;
self.Name = product.Name;
self.Price = product.Price;
self.Category = product.Category;
}
self.products = ko.observableArray(); // Contains the list of products
self.product = ko.observable();
self.status = ko.observable();
public void DeleteProduct(int id)
{
Product item = repository.Get(id);
if (item == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
repository.Remove(id);
}
.cshtml
// Get delete product
self.remove = function() {
self.products.remove();
$.getJSON("/api/products", function (products) {
$.each(products, function (index, product) {
self.products.pop(new ProductViewModel(product));
})
});
}
productrespository.cs
public void Remove(int id)
{
products.RemoveAll(p => p.Id == id);
}
Можете ли вы разместить свой репозиторий.Remove() код? – usp
Удалены ли они из db или ui? pop удаляет элементы из массива, поэтому 'self.products.pop (новый ProductViewModel (продукт));' не имеет смысла. Используйте push для добавления элементов. Также нет вызова в веб-api для удаления продукта, например. '$ .ajax ({url: '/ api/products /' + id, type: 'DELETE'})' –
Привет, я фактически удаляю из массива/ui, а не из базы данных. – user3156220