Comment coder une réponse Created-201 à l'aide de IHttpActionResult
?
IHttpActionResult
n'a que ces options
Ce que je fais maintenant, c'est ce code ci-dessous, mais je voudrais utiliser IHttpActionResult
et non HttpResponseMessage
public IHttpActionResult Post(TaskBase model)
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, model);
response.Headers.Add("Id", model.Id.ToString());
return ResponseMessage(response);
}
Si votre vue dérive de ApiController
, vous devriez pouvoir appeler la méthode Created
à partir de la classe de base pour créer une telle réponse.
Échantillon:
[Route("")]
public async Task<IHttpActionResult> PostView(Guid taskId, [FromBody]View view)
{
// ... Code here to save the view
return Created(new Uri(Url.Link(ViewRouteName, new { taskId = taskId, id = view.Id })), view);
}
return Content(HttpStatusCode.Created, "Message");
Le contenu renvoie NegotiatedContentResult. NegotiatedContentResult est implémente IHttpActionResult.
Un problème similaire: si vous souhaitez envoyer NotFound avec le message.
return Content(HttpStatusCode.NotFound, "Message");
Ou:
return Content(HttpStatusCode.Created, Class object);
return Content(HttpStatusCode.NotFound, Class object);