Comment lire FormData dans l'api Web
J'ai ASP.NET MVC webapplication j'ai webapi webServvices ajoute.
J'ai code javascript suivant .
var data = new FormData();
data.append("filesToDelete", "Value");
$.ajax({
type: "POST",
url: "/api/FileAttachment/UploadFiles?clientContactId=" + clientContactId,
contentType: false,
processData: false,
data: data,
success: function (result) {
},
error: function (xhr, status, p3, p4) {
}
});
Suivant est WebApi code:
public void UploadFiles(int clientContactId)
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var jsonContent = Request.Content.ReadAsStringAsync().Result;
}
maintenant comment lire jsonContent basée sur la valeur de la clé de paire passés de javascript FormData ?
j'ai essayé de JsonConvert.DeserializeObject<?>
mais il nécessite un type particulier de désérialiser.
je veux obtenir la valeur de la clé "filesToDelete" passé en javascript FormData.
comment la lire ?
grâce
Ajouter un paramètre
[FromBody]string filesToDelete
à votre méthode en supposant que vous êtes réellement du passage d'une chaîneOriginalL'auteur ghanshyam.mirani | 2016-11-25
Vous devez vous connecter pour publier un commentaire.
Ce que je voudrais Faire est de:
Côté Client: au Lieu de passer clientContactId dans la chaîne de requête. Fixez la valeur de la clé de paire dans l'objet FormData lui-même. Définir le type de données JSON.
Côté serveur: À côté serveur, nous pouvons obtenir la demande brute à l'aide de
HttpContext.Current.Request
.Afin que nous puissions obtenir les valeurs en utilisant simplement les valeurs de clé de
FormData
objet à l'intérieur deHttpContext.Current.Request.Params["KeyValue"]
.Il ne fonctionne pas pour moi!
OriginalL'auteur Shahbaaz
Si vous souhaitez envoyer des données JSON comme ça, vous devez définir un modèle en C# qui correspond au modèle que vous êtes en passant de retour en JSON. Votre WebApi méthode de contrôleur va ressembler à quelque chose comme ceci:
OriginalL'auteur AndrewWhalan
Pour obtenir le "filesToDelete" la valeur que vous pouvez utiliser JSON.NET. le code:
OriginalL'auteur user1567453
Vous pouvez créer
dynamic
objetensuite, vous pouvez accéder à
filesToDelete
commeOriginalL'auteur Mostafiz
Je pense que ce tutoriel à partir de la ASP.NET site web pourrait être ce que vous cherchez:
L'envoi des Données du Formulaire HTML dans ASP.NET l'API Web: Form-urlencoded de Données
Basé sur votre exemple de code je ne sais pas si vous avez besoin d'un type complexe à partir des données du formulaire, ou juste un simple entier basé sur la UploadFiles(int clientContactId) méthode dans votre API Contrôleur. La signature permet de croire que vous êtes juste essayer de passer pour un simple entier. Si c'est le cas, votre API Contrôleur méthode pourrait ressembler à ceci:
Et votre appel AJAX va ressembler à quelque chose comme ceci:
Si vous avez déjà les données formatées en JSON dans votre JavaScript, vous pouvez l'envoyer dans le corps de la demande. La méthode de Contrôleur pourrait ressembler à quelque chose comme ceci:
Et votre appel AJAX pourrait ressembler à:
Découvrez le tutoriel, j'ai lié ci-dessus, si, je pense que cela peut expliquer les choses un peu mieux pour vous.
OriginalL'auteur matt.f.c
Veuillez utiliser le ci-dessous pour obtenir la valeur dans le contrôleur,
OriginalL'auteur Aravindkumar Murugesan