簡體   English   中英

如何將 Uri 添加到 Post 請求的 Created(狀態代碼 201)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM