Question Asp.net Web Api définit le code d'état de réponse sur le numéro


Dans Asp.net Web Api, comment définir le code d’état de ma réponse à l’aide d’un int ou d’une chaîne, et non de la liste StatusCode?

Dans mon cas, je voudrais renvoyer des erreurs de validation avec le code d’état 422, "Entité non traitable", mais il n’ya pas d’énumérateur pour cela.

HttpResponseMessage response = Request.CreateResponse();
response.StatusCode = HttpStatusCode.UnprocessableEntity; //error, not in enum

36
2018-02-19 19:43


origine


Réponses:


Vous pouvez convertir n'importe quel int en HttpStatusCode.

response.StatusCode = (HttpStatusCode)422;

Vous pouvez aussi:

HttpResponseMessage response = Request.CreateResponse((HttpStatusCode)422, "Unprocessable Entity");

41
2018-02-19 19:47



J'ai fini par créer une classe pour cela:

  public class HttpStatusCodeAdditions
    {
        public const int UnprocessableEntityCode = 422;
        public static HttpStatusCodeAdditions UnprocessableEntity = new HttpStatusCodeAdditions(UnprocessableEntityCode);

        private HttpStatusCodeAdditions(int code)
        {
            Code = code;
        }
        public int Code { get; private set; }

        public static implicit operator HttpStatusCode(HttpStatusCodeAdditions addition)
        {
            return (HttpStatusCode)addition.Code;
        }
    }

qui peut être utilisé comme ceci:

response.StatusCode = HttpStatusCodeAdditions.UnprocessableEntity;

10
2018-02-04 19:45