저는 jquery에 익숙하지 않습니다. 제목에 언급 된대로 문제가 있습니다. 내 컨트롤러 코드는 다음과 같습니다 내가 디버거 모드 아래 projectList을 검사 할 때Jquery array.length가 실제 배열 길이보다 짧습니다.
[HttpPost]
public JsonResult getProjectList()
{
List<Project> projectList = new List<Project>();
foreach (IML.ProjectInfo pr in getProjectArray())
{
Project x = new Project(pr.Name, pr.ID, pr.OwnerID, pr.CreatedBy, pr.CreatedAt, "", pr.Deleted, pr.Closed);
projectList.Add(x);
}
return Json(projectList.ToArray());
}
는 6 개 요소가 있습니다. 내 웹 페이지에서 나는 다음과 같은 아약스 호출이 있습니다
$.ajax({
url: '@Url.Action("getProjectList")',
type: "POST",
//enumerowanie projektów
success: function (data) {
projekty = data;
var wyswietl ="<table><tbody>";
var tabelka = "";
var wybranyProjekt;
alert($.data.length);//this alert tells me that data.length is 3
for (i = 0; i < 6; i++)//even if $.data.length is 3 the data[i].Name holds values for 6 elements
{
tabelka += "<tr class=\"enumeracjaProj\" id=\"" + i
+ "\"><td class=\"projekty\" id=\"" + i + "\"> " + data[i].Name + " </td></tr>"
}
wyswietl += tabelka;
wyswietl += "</tbody></table>";
$('#projekty_div').append(wyswietl);
})
나는 아약스 결과는 내가 루프 위에 가면 길이가 3이라고 말해 6 개 요소의 배열을 게시하더라도 6 번의 반복으로 하드 코딩되었는데 제대로 표시되었습니다.
당신의
alert($.data.length);
alert(data.length);
에 변경해야합니까? 나는 json이나 텍스트를 의미합니까? 먼저 ajax 호출에서 데이터 유형을 지정하십시오. JSON.stringify (data) 값을 게시 할 수 있습니까? (귀하의 성공 함수에서) –이제는 아약스 호출 데이터 형식을 지정합니다 : $ .ajax ({ url : '@ Url.Action ("getProjectList")', 유형 : "POST", dataType : "json", // 성공 사례 : success : function (data) {... – pitruskjw
예,이 JSON.stringify (데이터)의 가치를 알려주십시오. 단순히 성공 함수 내에 경고를 추가하십시오. (JSON.stringify (data)); –