.net core CreatedAtRoute函数返回状态码500 所遇到的问题。

  //获取单个旅游路线中的单张照片   加{}表示get路由要传入的参数
        [HttpGet("{pictureId}",Name = "GetPicture")]
        public IActionResult GetPicture(Guid touristRouteId ,int pictureId)
        {

            //判断路线是否存在
            if (!_touristRouteRepository.TouristRouteExists(touristRouteId))
            {
                return NotFound("旅游路线不存在!");
            }
            //判断照片是否存在
            var pictureFromRepo = _touristRouteRepository.GetPicture(pictureId);
            if (pictureFromRepo == null) {
                return NotFound("照片不存在!");
            }
            return Ok(_mapper.Map<TouristRoutePictureDto>(pictureFromRepo));
        }


        [HttpPost]
        public IActionResult CreateTouristRoutePicture(
            [FromRoute] Guid touristRouteId,
            [FromBody] TourisRoutePictureForCreationDto tourisRoutePictureForCreationDto

            )
        {
            //判断路线是否存在
            if (!_touristRouteRepository.TouristRouteExists(touristRouteId))
            {
                return NotFound("旅游路线不存在!");
            }
            var pictureModel = _mapper.Map<TouristRoutePicture>(tourisRoutePictureForCreationDto);
            _touristRouteRepository.AddTouristRoutePicture(touristRouteId, pictureModel);
            _touristRouteRepository.Save();
            var pictureToReturn = _mapper.Map<TouristRoutePictureDto>(pictureModel);
            return CreatedAtRoute(
                "GetPicture",
                new {
                    touristRouteId = pictureModel.TouristRouteId,
                    pictureId = pictureModel.Id
                },
                pictureToReturn
                );
             
        }

我返回500是

CreatedAtRoute(
“GetPicture”,
new {
touristRouteId = pictureModel.TouristRouteId,
pictureId = pictureModel.Id
},
pictureToReturn
);
在这个函数体里面 ,把第二个参数里面的变量多写了一个字母

先给你看下我控制器的路由格式
[Route(“api/touristRoutes/{touristRouteId}/pictures”)]

切记 new {
touristRouteId = pictureModel.TouristRouteId,
pictureId = pictureModel.Id
}
里面的参数touristRouteId 一定要和路由里面的{touristRouteId}保持路由一致,不然他不知道你把这个值给谁。

保持一致就正常返回201了。可以在Loction中拿到返回的路由。请添加图片描述

那个routeName就是 [HttpGet("{pictureId}",Name = “GetPicture”)]的Name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值