.net core CreatedAtRoute参数碰到的问题

发布时间 2023-08-03 02:00:20作者: 一个会喊六六六的混子

CreatedAtRoute 方法中 new 里面的需要跟跳转的路由的参数名一致

        [HttpGet("{userId:Guid}", Name = "GetApplicationUserById")]
        public async Task<IActionResult> GetApplicationUserById(Guid userId)
        {
            var user = await _userManager.FindByIdAsync(userId.ToString());
            if (user == null)
            {
                return NotFound($"该用户{userId}不存在");
            }

            return Ok(user);
        }

        [HttpPost]
        public async Task<IActionResult> AddUserAsync([FromBody] RegisterDto registerDto)
        {
            //创建用户
            var user = new ApplicationUser()
            {
                UserName = registerDto.Email,
                Email = registerDto.Email
            };

            var result = await _userManager.CreateAsync(user, registerDto.Password);
            if (!result.Succeeded)
            {
                return BadRequest(result.Errors);
            }

            return CreatedAtRoute(
                "GetApplicationUserById",
                new { userId = Guid.Parse(user.Id) },
                user);
        }