Maison  >  Article  >  interface Web  >  Comment transmettre des données JSON POST en tant qu'objet à une méthode API Web dans ASP.NET MVC4 ?

Comment transmettre des données JSON POST en tant qu'objet à une méthode API Web dans ASP.NET MVC4 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 14:13:02299parcourir

How to Pass JSON POST Data as an Object to a Web API Method in ASP.NET MVC4?

Passer des données JSON POST en tant qu'objet à une méthode API Web

Dans l'API Web ASP.NET MVC4, vous pouvez rencontrer un scénario dans lequel une requête POST contenant des données JSON doit être transmise à une méthode d'action en tant qu'objet. Cependant, sans configuration appropriée, le paramètre de la méthode d'action peut contenir des propriétés nulles. Pour résoudre ce problème, vous devez suivre les étapes suivantes :

1. Spécifiez Content-Type comme "application/json" :

Lors de l'envoi de la demande, assurez-vous que l'en-tête Content-Type est défini sur "application/json". Celui-ci informe le serveur que les données sont au format JSON.

2. Utilisez la méthode JSON.stringify :

Dans le code côté client, convertissez les données JSON en chaîne JSON à l'aide de la méthode JSON.stringify. Cette étape est cruciale pour que le classeur de modèles puisse lier les données JSON à votre objet de classe.

Exemple :

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

3. Décorer le paramètre de méthode d'action avec [FromBody] :

Dans la méthode d'action de l'API Web, décorez le paramètre qui recevra les données JSON avec [FromBody]. Cet attribut indique que les données doivent être liées au corps de la requête.

Exemple :

public IActionResult Post([FromBody] Customer customer)
{
    // ...
}

4. Publication d'objets complexes :

Si votre classe de modèle de vue contient des propriétés complexes (telles que des listes ou des classes imbriquées), les mêmes principes s'appliquent. Assurez-vous que le code côté client crée un objet qui correspond à la structure de la classe et l'envoie sous forme de données JSON avec le type de contenu correct.

Dépannage :

  • Si la liaison de modèle fonctionne pour certaines propriétés mais pas pour d'autres, vérifiez si le paramètre de méthode d'action est décoré avec [FromBody].
  • Si vous n'êtes pas explicitement en définissant le Content-Type, assurez-vous que votre code côté client utilise la bonne méthode (par exemple, $.ajax avec contentType défini sur "application/json").

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