如何将 Uri 添加到 Post 请求的已创建(状态代码 201)

How to Add Uri to the Created(Status Code 201) of a Post Request

我刚开始学习 asp.net 核心 api,我正在尝试向 Postman 发出 post 请求。我想 return post 的状态代码 201 和 return 新 posted 数据的 Uri 作为位置。下面是我的控制器代码

    [HttpPost]
    public ActionResult CreateMake([FromBody]MakeResource makeresource)
    {
        if (!ModelState.IsValid) {
            return BadRequest(ModelState) ;
        }
       var makes = mapper.Map<MakeResource, Make>(makeresource);
        _makes.AddMake(makes);
        makeresource.Id = makes.Id;

        return Created(new Uri(Request.Path, UriKind.Relative), makeresource);
    }

我收到一个错误

System.UriFormatException: 'Invalid URI: The format of the URI could not be determined.'

我想这与 Uri(Request.Path) 有关。 在 Asp.net web api 中,我会将其实现为 return Created(new Uri(Request.Uri + "/" + makes.Id), makeresource); 并且操作类型将是 IHttpActionResult 而不是我的控制器中显示的 ActionResult 但它在 [=20] 中不起作用=]核心。 需要有关如何解决此问题的任何帮助。 谢谢

我只想把它放在这里,以防将来有人需要它。 我从

得到了我使用的答案

我通过将 (Request.Path, UriKind.Relative) 替换为 (Request.GetEncodedUrl()+ "/" + makes.Id) 解决了我的问题,如下所示:

return Created(new Uri(Request.GetEncodedUrl()+ "/" + makes.Id), makeresource);