Maison >développement back-end >C++ >Comment gérer la validation de l'état du modèle dans l'API Web ASP.NET ?

Comment gérer la validation de l'état du modèle dans l'API Web ASP.NET ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 19:52:11754parcourir

How to Handle Model State Validation in ASP.NET Web API?

Gestion de la validation de l'état du modèle dans l'API Web ASP.NET

La validation des modèles dans l'API Web ASP.NET est une tâche courante. La validation du modèle peut être réalisée à l'aide des propriétés d'annotation de données et de la propriété ModelState.

Le modèle donné dans l'exemple définit plusieurs propriétés, chacune avec un attribut d'annotation de données obligatoire indiquant que le champ est obligatoire.

Dans l'exemple, dans la méthode Post action, aucune validation explicite n'est effectuée sur le modèle. Pour implémenter la validation du modèle, vous pouvez ajouter le code suivant au début de la méthode :

if (!ModelState.IsValid)
{
    // Handle validation errors
}

Dans le cas où le ModelState n'est pas valide, cela indique que la validation du modèle a échoué. À ce stade, vous pouvez suivre les étapes suivantes pour gérer le message d'erreur :

  1. Créez un objet HttpResponseMessage vide.
  2. Définissez le code d'état de HttpResponseMessage sur HttpStatusCode.BadRequest, indiquant une erreur client.
  3. Ajoutez le message d'erreur de ModelState au contenu de HttpResponseMessage.
  4. Définit le HttpResponseMessage sur la réponse du HttpActionContext.

Vous pouvez également utiliser Action Filter pour la vérification du modèle. Un filtre d'action est un attribut personnalisé qui peut s'exécuter avant ou après l'exécution d'une opération API. L'exemple suivant montre comment utiliser un filtre d'action pour la validation du modèle :

public class ValidationActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (!actionContext.ModelState.IsValid)
        {
            actionContext.Response = actionContext.Request
                .CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }
}

L'application de ce filtre d'action à une opération d'API valide automatiquement le modèle et renvoie une réponse d'erreur appropriée si l'état du modèle n'est pas valide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn