所以這是我的問題。我使用Jquery的$ .ajax將一系列值傳回給web方法。 Web方法接受這些值,創建一個對象,然後將其作爲json發送回調用頁面。一旦我得到響應,我無法訪問響應並顯示它的值。沮喪與Json響應
任何人都可以解釋我需要做什麼使這項工作?
的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> "
);
};
});
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);
}
這是我恢復的響應:
{"d":"\"Name\":\"bob\",
\"Company\":\"google\",
\"Address\":\"home\",
\"Phone\":\"123\",
\"Country\":\"usa\"}"}
這就是我想我應該回來:
{"Name":"bob",
"Company":"google",
"Address":"home",
"Phone":"123",
"Country":"usa"}
我得到一次頁面錯誤再次渲染是這樣的:
•undefined
•undefined
•undefined
•undefined
•undefined
我沒有做過很你在這裏做的方式,但我會嘗試擺脫你使用`JavaScriptSerializer`的。只要返回你的Employee類,框架應該將它轉換爲Json。 – CodingGorilla 2010-12-22 19:23:43
你是對的錢。 JavaScriptSerializer()部分用我的json響應做了一些奇怪的事情。感謝提示! – Chris 2010-12-22 19:40:33