Maison > Article > interface Web > Comment transmettre des données JSON POST en tant qu'objet à une méthode API Web dans 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 :
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!