2014-10-29 1 views
0

저는 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 번의 반복으로 하드 코딩되었는데 제대로 표시되었습니다.

+0

당신의 alert($.data.length);alert(data.length);에 변경해야합니까? 나는 json이나 텍스트를 의미합니까? 먼저 ajax 호출에서 데이터 유형을 지정하십시오. JSON.stringify (data) 값을 게시 할 수 있습니까? (귀하의 성공 함수에서) –

+0

이제는 아약스 호출 데이터 형식을 지정합니다 : $ .ajax ({ url : '@ Url.Action ("getProjectList")', 유형 : "POST", dataType : "json", // 성공 사례 : success : function (data) {... – pitruskjw

+0

예,이 JSON.stringify (데이터)의 가치를 알려주십시오. 단순히 성공 함수 내에 경고를 추가하십시오. (JSON.stringify (data)); –

답변

1

작은 보정, 당신은

$.data이의 jQuery 함수와 data 데이터가 예상 유형은 무엇 응답 결과

+0

길이가 $ .data.length 인 내용을 설명해 주시겠습니까? – pitruskjw

+0

다음을 참조하십시오. http://api.jquery.com/jquery.data/ – NibblyPig

관련 문제