在.Net中我使用的是一个AJAX调用,它返回一个类列表,在此列表中,其中一个属性是Email \ Contact信息列表。
当我从Web方法中获取JSON数据时,我正在迭代它并根据需要获取信息,直到我来遍历Email \ Contact Information列表。
使用此代码
if (data.d[0].Emails.length > 0) {
$.each(data.d[0].Emails, function () {
var something = "";
});
}
对象data.d [0] .Emails的长度大于0,如果我使用调试器查看这个,我可以看到我期待的所有值。
但是,我遇到的问题是当我进入$ .each data.d [0]时。电子邮件变得未定义,我所追踪的所有信息都将丢失。
在Visual Studio中进行调试时,我得到的消息是数据'未定义
我将很高兴了解我出错的方式和地点,并能够获取信息。
这是整个ajax方法
$.ajax({
type: "POST",
url: "Admin.aspx/GetCmcContactInformation",
data: JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var d = data.d;
console.log(d);
$("#MainContent_txtAddressLine1").val(data.d[0].AddressLine1);
$("#MainContent_txtAddressLine2").val(data.d[0].AddressLine2);
$("#MainContent_txtCity").val(data.d[0].City);
$("#MainContent_txtPostcode").val(data.d[0].PostCode);
$("#MainContent_txtCmcComments").val(data.d[0].Notes);
if (data.d[0].Emails.length > 0) {
if (data.d[0].Emails.length > 0) {
$.each(data.d[0].Emails, function (index, email) {
var something = "";
});
}
}
$("#saveModal").modal("hide");
},
error: function (data) {
console.log("error :" + data);
console.log(data);
$("#saveModal").modal("hide");
$("#newUser").hide("slow");
}
});
感谢
西蒙
答案 0 :(得分:1)
它可能只是您的示例代码,但似乎您使用了错误的方法签名进行回调。如果您参考$.each的文档,则需要为回调定义两个参数。在下面的示例代码中,每个项目都可以在email
参数中找到:
if (data.d[0].Emails.length > 0) {
$.each(data.d[0].Emails, function (index, email) {
var something = "";
});
}