![](/img/trans.png)
[英]Handle exception “JavaScript runtime error: Unable to get property 'length' of undefined or null reference” on ko.observable field?
[英]JavaScript runtime error: Unable to get property 'length' of undefined or null reference
抛出错误,显示d是未定义的。 全文为:JavaScript运行时错误:无法获取未定义或空引用的属性“ length”。 我不明白为什么它不显示数据。 在数据库中它有两个记录。
这是HTMl,一个按钮
的HTML
<h3>Load Data</h3>
<input id="btnLoadData" type="button" value="Load Database" onclick="GetCompanies()" />
<div id="UpdatePanel">
</div>
这是ajax电话
用jQuery进行Ajax调用
function GetCompanies() {
$("#UpdatePanel").html("<div style='text-align:center'>Please Wait</div>")
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetCompanies",
data: "{}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: onSuccess,
error: onError
});
}
function onSuccess(data) {
var tableContent = "<table border='0'>" +
"<tr>" +
"<td>Rank</td>" +
"<td>Company Name</td>" +
"<td>Revenue</td>" +
"<td>Industry</td>" +
"</tr>";
for (var i = 0; i < data.d.length; i++) { //d is undefined
tableContent+=
"<tr>" +
"<td>"+data.d[i].Rank+"</td>" +
"<td>"+data.d[i].CompanyName+"</td>" +
"<td>"+data.d[i].Revenue+"</td>" +
"<td>" + data.d[i].Industry + "</td>" +
"</tr>";
}
tableContent += "</table>";
$("#UpdatePanel").html(tableContent);
}
function onError(data) {
}
后端代码
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public static List<TopCompany> GetCompanies()
{
List<TopCompany> allCompany = new List<TopCompany>();
using (MyDatabaseEntities db = new MyDatabaseEntities())
{
allCompany = db.TopCompanies.ToList();
}
return allCompany;
}
需要协助以找出错误。
通过评论以下语句来修复
// settings.AutoRedirectMode = RedirectMode.Permanent;
在App_Start / RouteConfig.cs中
function GetCompanies() {
$("#UpdatePanel").html("<div style='text-align:center'>Please Wait</div>")
$.ajax({
type: "POST",
url: "WebForm1.aspx/GetCompanies",
data: "{}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: onSuccess,
error: onError
});
}
function onSuccess(data) {
var tableContent = "<table border='0'>" +
"<tr>" +
"<td>Rank</td>" +
"<td>Company Name</td>" +
"<td>Revenue</td>" +
"<td>Industry</td>" +
"</tr>";
for (var i = 0; i < data.length; i++) { //d is undefined
tableContent+=
"<tr>" +
"<td>"+data[i].Rank+"</td>" +
"<td>"+data[i].CompanyName+"</td>" +
"<td>"+data[i].Revenue+"</td>" +
"<td>" + data[i].Industry + "</td>" +
"</tr>";
}
tableContent += "</table>";
$("#UpdatePanel").html(tableContent);
}
function onError(data) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.