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
Libérer: 2024-12-24 19:52:11
original
767 Les gens l'ont consulté

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
}
Copier après la connexion

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);
        }
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal