Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何解决asp.net web API中的更新用户问题_Angularjs_Asp.net Web Api_Asp.net Identity - Fatal编程技术网

Angularjs 如何解决asp.net web API中的更新用户问题

Angularjs 如何解决asp.net web API中的更新用户问题,angularjs,asp.net-web-api,asp.net-identity,Angularjs,Asp.net Web Api,Asp.net Identity,我为更新用户开发了函数,但在后端,我有错误: System.NullReferenceException:'对象引用未定义为对象的实例。'用户为null 我想是因为用户是空的,我不知道如何调用来填充用户数据。此错误显示在条件if(id!=users.id)中,如何解决此问题,以下是我的代码: [ResponseType(typeof(void))] // [HttpPut] [AcceptVerbs("OPTIONS")] public IHttpA

我为更新用户开发了函数,但在后端,我有错误:

System.NullReferenceException:'对象引用未定义为对象的实例。'用户为null

我想是因为用户是空的,我不知道如何调用来填充用户数据。此错误显示在条件if(id!=users.id)中,如何解决此问题,以下是我的代码:

[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);
        }
和这个user.controller:

$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.Id);
                       //idsForEdit.push(item);
                        $scope.registration.Email=item.Email;
                        $scope.registration.Password=item.PasswordHash;
                        $scope.registration.Users_Role=item.Role;
                        $scope.registration.Site=item.Site;
                        $scope.registration.Id=item.Id;

                        $scope.ok = function () {
                            console.log("ok");
                           // $scope.Action = "Update";

                            User.Update({
                                    id: item.Id
                                }, $scope.Users=item.Users
                                , 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;
            };
你的代码应该是-

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

            if(users != null)
            {
              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);
        }
使用C#6.0新特性-空条件运算符

  [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);
            }
您应该首先确定“用户”是否为空,然后尝试访问其中的参数。@shahistainamdar,是的,“用户”为空