我有一个页面调用CustomerJASON.aspx,其代码类似于
protected void Page_Load(object sender, EventArgs e)
{
//MakeJasonCustomer();
Request.ContentType = "application/json";
var customer = new Customer()
{
ID = int.Parse(Request["id"]),
FirstName = "Haseeb",
LastName = "Khan"
};
var jsonSerializer = new DataContractJsonSerializer(typeof(Customer));
jsonSerializer.WriteObject(Response.OutputStream, customer);
}
我使用jQuery getjason函数调用此页面,我编写的代码是
$(document).ready(function () {
LoadData();
});
function LoadData() {
$('#SubmitButton').click(function () {
$.getJSON('CustomerJASON.aspx', { id: 5 }, function (data) {
alert(data.FirstName);
});
});
}
但问题是我无法从getJSON函数获取警报。请帮助我完全卡住。
答案 0 :(得分:0)
尝试将console.log或console.dir添加到数据代码中以确保它实际上是一个对象,因为如果它没有警告它没有被调用或者data.firstName不正确并且javascript失败
console.dir(data);
alert(data.firstName);
检查firebug或其他工具正在显示的数据
答案 1 :(得分:0)
您可以在'CustomerJASON.aspx'中添加另一个WebMethod来处理返回值而不是Page Load事件
[System.Web.Services.WebMethod]
public static string LoadData() { //Code Here }
和Javascript代码:
$.getJSON('CustomerJASON.aspx/LoadData', { id: 5 }, function (data)
答案 2 :(得分:0)
$.getJSON()
什么都不做。打开开发者控制台(F12,网络标签)并检查回复。
或者,尝试附加错误处理程序以查看是否发生了什么。
$.getJSON('CustomerJASON.aspx', { id: 5 }, function (data) {
alert(data.FirstName);
}).error(function(jqXHR, textStatus, errorThrown) {
// Inspect the values of jqXHR, textStatus, errorThrown here.
});