[英]How to Add Uri to the Created(Status Code 201) of a Post Request
我剛開始學習 asp.net core api,我正在嘗試從 Postman 發出帖子請求。 我想在發布時返回 201 的狀態代碼,並返回新發布數據的 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: '無效的 URI:無法確定 URI 的格式。'
我想這與 Uri(Request.Path) 有關。 在 Asp.net web api 中,我將它實現為return Created(new Uri(Request.Uri + "/" + makes.Id), makeresource);
並且動作類型將是 IHttpActionResult 而不是 ActionResult ,如我的控制器中所示,但它在 asp.net 核心中不起作用。 需要有關如何解決此問題的任何幫助。 謝謝。
我只想把它放在這里,以防將來有人需要它。 我從什么是 ASP.NET Core MVC 等效於 Request.RequestURI?
我解決了我的問題,通過更換(Request.Path, UriKind.Relative)
與作為(Request.GetEncodedUrl()+ "/" + makes.Id)
看到如下:
return Created(new Uri(Request.GetEncodedUrl()+ "/" + makes.Id), makeresource);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.