从数据库中删除记录

时间:2016-07-21 08:41:48

标签: asp.net angularjs asp.net-mvc database crud

我正在尝试删除ASP.NET应用程序 - API控制器下的记录集。这是我在API Controller中的代码:

    public JsonResult Delete([FromBody]ICollection<ShoppingItemViewModel> vm)
    {
        if (ModelState.IsValid)
        {
            try
            {
                var items = Mapper.Map<IEnumerable<ShoppingItem>>(vm);
                _repository.DeleteValues(items, User.Identity.Name);
                return Json(null);
            }
            catch (Exception Ex)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return Json(null);
            }
        }
        else
        {
            Response.StatusCode = (int)HttpStatusCode.BadRequest;
            return Json(null);
        }
    }

这是我的AngularJS控制器部分负责这个:

    $scope.RemoveItems = function () {
        $scope.isBusy = true;

        $http.delete("/api/items", $scope.items)
            .then(function (response) {
                if (response.statusText == "OK" && response.status == 200) {
                    //passed
                    for (var i = $scope.items.length - 1; i > -1; i--) {
                        if ($scope.items[i].toRemove == true) {
                            $scope.items.splice(i, 1);
                        }
                    }
                }
            }, function (err) {
                $scope.errorMessage = "Error occured: " + err;
            }).finally(function () {
                $scope.isBusy = false;
            });

    }

由于未知原因,这在我的POST方法中起作用,但在Delete方法中起作用。我认为问题可能是由于DELETE方法只接受Integer ID 这一事实造成的?

如果是这种情况,那么如何通过一次调用删除多个项目的正确方法是什么?

0 个答案:

没有答案