且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何解决ASP.NET Web API中的更新用户问题

更新时间:2023-02-15 12:56:11

您的代码应为-

[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的新功能-空条件运算符

Using C# 6.0 new features - Null Conditional Operator

  [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);
            }