En passant objet JavaScript de jQuery AJAX web méthode de sérialisation personnalisée
J'ai un problème dans le passage d'un objet JavaScript pour webmethod dans asp.net.
L'objet JavaScript est:
var Materials = new Object();
function() {
Materials.MaterialName = $('[id*="txtMaterialName"]').val();
Materials.QuantityType = $('[id*="txtquantity"]').val();
AddNewMaterialToDb(Materials);
$(this).dialog('close');
}
Ici des matériaux est l'objet et maintenant je veux passer à une méthode web qui prend un paramètre de type de classe.
Maintenant, j'ai deux option:
- soit de définir l'webmethod pour prendre un paramètre de MaterialEntity classe qui serait automatiquement comprendre la chaîne JSON passé de l'AJAX méthode
- pour créer le webmethod pour prendre la chaîne JSON et sérialiser dans MaterialEntity classe
Comment faire quand je suis à l'aide de jQuery AJAX?
Je veux dire pour être précis comment dois-je passer à l'objet jQuery que les données pour l'AJAX de jQuery, de sorte que l'une des deux conditions susmentionnées devient satisfait?
Fonction jQuery AJAX:
function AddNewMaterialToDb(materials) {
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'Services/Service.asmx/AddNewMaterial',
data :'{"Materials":"' + JSON.stringify(materials).replace('"', '\\\"') + '"}',
dataType: "json",
success: function(data, textStatus) {
if (textStatus == "success") {
if (data.d == true) {
alert('New Item Added');
}
}
},
error: function(data, textStatus) {
alert('An error has occured retrieving data!');
}
});
}
peut-être vous ne pouvez pas passer JS objet.
je sais que ... je voulais dire en fait, si je peux le convertir dans un format json par JSON.stringify méthode . et puis le passer .. mais de toute façon je suis d'erreur . j'ai déjà utilisé que dans le code s'il vous plaît vérifier
Regardez le lien que j'ai monté dans ma réponse ci-dessous
je sais que ... je voulais dire en fait, si je peux le convertir dans un format json par JSON.stringify méthode . et puis le passer .. mais de toute façon je suis d'erreur . j'ai déjà utilisé que dans le code s'il vous plaît vérifier
Regardez le lien que j'ai monté dans ma réponse ci-dessous
OriginalL'auteur Joy | 2011-04-17
Vous devez vous connecter pour publier un commentaire.
Veuillez voir si cette réponse aide. Regardez surtout à tous les attributs de la classe de service et de la méthode de service.
EDIT: Cette article a quelques conseils à cette question pourrait utiliser
Bon à savoir, il a aidé... 🙂
OriginalL'auteur Floyd Pink
vous pouvez faire quelque chose comme ceci:
Maintenant dans votre asp.net méthode Web vous pouvez simplement utiliser
Request.Form["name"]
pour obtenir le nom du matériau etRequest.Form["quantity"]
pour obtenir la quantité type. De cette façon, votre méthode web deviendra générique et vous n'auriez pas à passer des paramètres à votre méthode web.OriginalL'auteur Naveed Ahmad