在asp.net核心中的RequestUri

时间:2017-01-18 08:13:17

标签: c# asp.net asp.net-core

以下是asp.net框架中的代码。

    protected HttpResponseMessage Created<T>(T apiResponse, ObjectId id) where T: ILinking
    {
        //var builder = new UriBuilder();

        Uri uri = new Uri(this.RequestUri(), id.ToString());
        apiResponse.get_Links().Add(new ApiLink(uri, "created", HttpMethod.Get));
        HttpResponseMessage message = base.Request.CreateResponse<T>(HttpStatusCode.Created, apiResponse);
        message.Headers.Add("Location", uri.ToString());
        return message;
    }

我想在asp.net核心中迁移它。我谷歌很多,但无法找到任何解决方案。如何在asp.net核心中声明this.RequestUri()?

提前致谢。

1 个答案:

答案 0 :(得分:0)

ASP.NET Core包含一些新功能,可以更轻松地返回“创建”响应。

在你的控制器中,你可以添加这样的动作。

[HttpPost, Route("create")]
public ActionResult CreateMyObject([FromBody]Creature newCreature)
{
    string id = // some new object id
    var newPath = new Uri(HttpContext.Request.Path, id);
    return this.Created(newPath);
}