如何将 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);
我刚开始学习 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);