Comment afficher les données XML en MVC Contrôleur? (au lieu de clé/valeur)
À l'aide de Fiddler je peut passer dans le corps
someXml=ThisShouldBeXml
et puis dans le contrôleur
[HttpPost]
public ActionResult Test(object someXml)
{
return Json(someXml);
}
obtient ces données sous forme de chaîne de
Comment puis-je obtenir un violon pour passer XML à la MVC ActionController ? Si j'essaie de définir la valeur dans le corps comme le xml brut, il ne fonctionne pas..
Et pour les points de bonus comment puis-je le faire à partir de VBscript/ASP Classique?
J'ai actuellement
DataToSend = "name=JohnSmith"
Dim xml
Set xml = server.Createobject("MSXML2.ServerXMLHTTP")
xml.Open "POST", _
"http://localhost:1303/Home/Test", _
False
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xml.send DataToSend
- qu'avez-vous mis votre-tête Content-Type pour quand vous avez essayé d'envoyer les données XML dans le corps? Il pourrait être utile si vous avez mis à jour votre question de tout montrer dans l'onglet Composer que vous envoyez.
- trouvé la réponse, j'ai besoin d'un moyen de coller un morceau de XML dans la paire clé/valeur et l'utilisation de la ActionFilter semble fonctionner.. Maintenant j'ai juste besoin de comprendre comment parser le XML en ASP Classique..
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas passer directement des données XML en fichier MVC contrôleur. Un de la meilleure méthode consiste à transmettre des données XML en Flux avec HTTP post.
Pour l'Affichage de XML,
Reportez-vous à cette stackoverflow post pour plus de détails sur l'affichage de XML pour MVC Contrôleur
Pour récupérer les données XML dans le contrôleur, utilisez la méthode suivante
Cela semble être la façon de payer XML à un Contrôleur MVC
Comment passer XML comme la POSTE à un ActionResult ASP MVC .NET
J'ai essayé d'obtenir que cela fonctionne avec l'API WEB, mais ne pouvait pas donc j'ai utilisé le MVC "Contrôleur" à la place.
Afin de transmettre les données comme une piqûre dans MVC, vous devez créer votre propre type de média formateur à poignée en texte brut. Ajoutez ensuite le formateur à la section de configuration.
Pour utiliser le nouveau module de formatage de spécifier le Type de Contenu pour que formateur, comme
text/plain.
Exemple de formatage de texte
Méthode de contrôleur:
L'installation dans le WebApiConfig.cs Registre méthode:
Fiddler en-têtes:
MVC Contrôleur n'est pas l'idéal pour un tel traitement de la demande, mais que c'était la tâche, nous allons donc l'obtenir. Prenons un XML que j'ai à accepter:
J'ai essayé quelques solutions avec construit-dans le paramètre de la désérialisation, mais aucune ne semble fonctionner et finalement, je suis allé avec la désérialisation d'une demande dans un corps de méthode. J'ai créé un helper générique classe:
J'ai décoré mon DTO avec des attributs xml:
Et utilisé dans un contrôleur:
À utiliser, il suffit d'envoyer une demande à l'aide par exemple de Facteur. Je suis l'envoi d'une requête POST http://yourdomain.com/documents/sendDocument point de terminaison avec xml corps mentionnés ci-dessus. Un détail à noter est un en-tête. Ajouter Content-Type: text/xml, ou de la demande de travail.
Et ça fonctionne:
Vous pouvez voir le post entier sur mon blog: http://www.michalbialecki.com/2018/04/25/accept-xml-request-in-asp-net-mvc-controller/
Afin d'envoyer la demande à l'aide de VBScript, j'ai utilisé l'objet WinHttp c'est à dire "WinHttp.WinHttpRequest.5.1".
Ci-dessous est une fonction que j'ai écrit et ce envoie la requête XML que vous passez et renvoie la réponse: