Maison >interface Web >js tutoriel >Comment puis-je garantir une liaison d'objet appropriée lors de la transmission de données JSON en tant qu'objets dans les requêtes POST dans les applications API Web ASP.NET MVC4 ?

Comment puis-je garantir une liaison d'objet appropriée lors de la transmission de données JSON en tant qu'objets dans les requêtes POST dans les applications API Web ASP.NET MVC4 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-10 02:08:02428parcourir

How do I ensure proper object binding when passing JSON data as objects in POST requests in ASP.NET MVC4 Web API applications?

Transmission de données JSON en tant qu'objets dans les requêtes POST

Dans les applications API Web ASP.NET MVC4, un problème courant survient lors de la tentative de transmission de données client en tant que JSON dans un POST demande, ce qui entraîne des valeurs nulles pour les propriétés du client. Pour résoudre ce problème, nous devons comprendre l'approche correcte.

Initialement, il a été suggéré d'utiliser « Content-Type : application/x-www-form-urlencoded » comme type de contenu par défaut. Cependant, cette approche n'est plus recommandée car elle peut entraîner des problèmes de liaison d'objets complexes.

La solution : utiliser "application/json"

Pour garantir une liaison d'objet appropriée, nous devons utiliser " application/json" comme type de contenu. Cela indique au serveur que nous envoyons des données JSON, permettant au classeur de modèles de lier correctement l'objet JSON à l'objet de classe correspondant.

Extrait de code :

var customer = {contact_name :"Scott",company_name:"HP"};
$.ajax({
    type: "POST",
    data :JSON.stringify(customer),
    url: "api/Customer",
    contentType: "application/json"
});

Explication :

  • Convertissez l'objet client en chaîne JSON à l'aide de JSON.stringify.
  • Définissez la propriété contentType sur "application/json" dans l'Ajax request.

En utilisant « application/json », nous informons explicitement le serveur que les données que nous envoyons sont au format JSON. Cela permet au classeur de modèles de désérialiser les données JSON dans l'objet Client, permettant ainsi à la méthode d'action d'accéder aux propriétés du client sans valeurs nulles.

Résoudre d'autres problèmes

Publication d'objets complexes

Dans les cas où la classe de modèle est complexe, contenant des objets imbriqués, nous devons nous assurer que l'objet JavaScript que nous envoyons correspond à la structure de la classe de modèle de vue. Le classeur de modèles peut alors également lier correctement les objets imbriqués.

Problèmes de liaison partielle

Si certaines propriétés ne sont pas liées correctement, assurez-vous que le paramètre de méthode d'action est décoré avec le [FromBody] attribut. Cet attribut demande au classeur de modèles de rechercher les données dans le corps de la demande. De plus, évitez d'utiliser la forme plus courte de $.post, car elle utilise le type de contenu par défaut et peut entraîner des problèmes de liaison partielle.

En respectant ces directives, vous pouvez transmettre efficacement les données JSON en tant qu'objets dans les requêtes POST. , en garantissant que les données publiées sont correctement liées aux objets de classe appropriés dans votre application API Web ASP.NET MVC4.

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