Alors voici mon problème. J'utilise $ .ajax de Jquery pour renvoyer une série de valeurs à une méthode web. La méthode web prend les valeurs, crée un objet, puis le renvoie en tant que json à la page appelante. Une fois que je reçois la réponse, je ne peux pas accéder à la réponse et afficher ses valeurs. Est-ce que quelqu'un peut expliquer ce que je dois faire pour que cela fonctionne?Frustré par la réponse de Json
Le script jquery:
$(document).ready(function() {
$("#create").click(function() {
var name = $('#name').val();
var company = $('#company').val();
var location = $('#location').val();
var phonenumber = $('#phonenumber').val();
var country = $('#country').val();
$.ajax({
type: "POST",
url: "WebService.asmx/MakeEmployee",
data: "{name:'" + name +
"',company:'" + company +
"',location:'" + location +
"',phonenumber:'" + phonenumber +
"',country:'" + country +
"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
AjaxSucceeded(msg.d);
}
});
});
function AjaxSucceeded(data) {
//var item = jQuery.parseJSON(data) // this doesn't work for me.
$("#response").html(
"<ul><li> " + data.Name +
"</li><li> " + data.Company +
"</li><li> " + data.Address +
"</li><li> " + data.Phone +
"</li><li> " + data.Country +
"</ul> "
);
};
});
La méthode web:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string MakeEmployee(string name, string company,
string location, string phoneNumber, string country)
{
Employee e = new Employee(name, company, location, phoneNumber, country);
return new JavaScriptSerializer().Serialize(e);
}
Et la réponse que je revenir:
{"d":"\"Name\":\"bob\",
\"Company\":\"google\",
\"Address\":\"home\",
\"Phone\":\"123\",
\"Country\":\"usa\"}"}
C'est ce que je pense que je devrais être de retour:
{"Name":"bob",
"Company":"google",
"Address":"home",
"Phone":"123",
"Country":"usa"}
L'erreur que je reçois une fois que les pages Renders à nouveau est la suivante:
•undefined
•undefined
•undefined
•undefined
•undefined
Je l'ai pas fait tout à fait la façon que tu fais ici, mais je voudrais essayer de se débarrasser de votre utilisation du 'JavaScriptSerializer'. Renvoyez simplement votre classe 'Employee' et le framework devrait la convertir en Json pour vous. – CodingGorilla
Vous avez raison sur l'argent. La partie JavaScriptSerializer() faisait quelque chose de génial avec ma réponse json. Merci pour les conseils! – Chris