【问题标题】:How to create method Update user in angularjs and asp.net webAPI如何在angularjs和asp.net webAPI中创建方法更新用户
【发布时间】:2018-10-03 07:11:38
【问题描述】:

我有一个用户,功能添加和删除工作但编辑方法不起作用,这是我的代码。这个错误

---: Failed to load http://localhost:14539/api/Users: Response for preflight has invalid HTTP status code 405.--------------------------------------------------------------------

使用的代码:

$scope.userEdit = function () {
    console.log('edit');
    var idsForEdit = [];
    angular.forEach($scope.listeOfUsers, function (item,$uibModalInstance, index) {
        console.log($scope.listeOfUsers);
        if (item.checked) {
            console.log(item.checked);
            console.log(item);
           // idsForEdit.edit(item);
            $scope.registration.Email=item.Email;
            $scope.registration.Password=item.PasswordHash;
            $scope.registration.Users_Role=item.Role;
            $scope.registration.Site=item.Site;
            $scope.ok = function () {
                console.log("ok");
                $scope.user=item;
                console.log($scope.user);

                User.Update({
                        id: item.Id
                    }, function (response) {
                        console.log(response);
                        console.log("ok");
                        SweetAlert.swal({
                            title: "Opération effectuée avec succès!",
                            text: "Click pour quitter!",
                            type: "success"
                        });
                        $state.go($state.current, $stateParams, {
                            reload: true,
                            inherit: false,
                            notify: true
                        });
                        $uibModalInstance.close();
                    },
                    function (err) {
                    });


                console.log($scope.user);

            };
        }
    });
    //$scope.isEditDirty==true;
};

还有这个 user.controller:

[ResponseType(typeof(void))]
// [HttpPut]
[AcceptVerbs("OPTIONS")]
public IHttpActionResult PutUsers(string id, Users users)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    if (id != users.Id)
    {
        return BadRequest();
    }

    db.Entry(users).State = EntityState.Modified;

    try
    {
        db.SaveChanges();
    }
    catch (DbUpdateConcurrencyException)
    {
        if (!UsersExists(id))
        {
            return NotFound();
        }
        else
        {
            throw;
        }
    }

    return StatusCode(HttpStatusCode.NoContent);
}

【问题讨论】:

  • 你会想要改变你的循环逻辑。您正在为listeOfUsers 中的每个项目设置$scope 的值。最终结果是$scope 将具有列表中最后一个条目的值。我怀疑这就是你想要的。
  • @Jon,是的,但是如何解决这个问题

标签: angularjs asp.net-web-api asp.net-identity


【解决方案1】:

您收到 HTTP 405,因为您的控制器方法设置为接受 OPTIONS 请求,而不是 PUT 请求。

【讨论】:

  • 如何解决这个问题,更改请求“OPTIONS”?
  • 取消注释 // [HttpPut] 并删除 [AcceptVerbs("OPTIONS")]
  • 我更改了我的代码,现在是问题所在:stackoverflow.com/questions/49998731/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多