web-dev-qa-db-fra.com

Comment puis-je coder une réponse Created-201 à l'aide de IHttpActionResult

Comment coder une réponse Created-201 à l'aide de IHttpActionResult?

IHttpActionResult n'a que ces options

  • Ok
  • Élément de liste
  • Pas trouvé
  • Exception
  • Non autorisé
  • Mauvaise Demande
  • Redirection de conflit
  • InvalidModelState

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);
         }
15
Devsined

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);
}
15
Gildor
return Content(HttpStatusCode.Created, "Message");

Le contenu renvoie NegotiatedContentResult. NegotiatedContentResult est implémente IHttpActionResult.

enter image description here

enter image description here

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);
5
miragessee