以下是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()?
提前致谢。
答案 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);
}