2014-03-06 2 views
0

asp.net mvc 4 프로젝트에서 클라이언트 측에서 아약스를 통해 파트 데이터를 보내고 결과를 표시해야합니다. 하지만 내가 응답 한 모든 것은 []입니다. 디버깅 중이며 null이 아님을 확신합니다 List <> 컬렉션. 아무도 내 실수가 어디 있는지 아나요?asp.net mvc4에서 getJson과 함께 문제

<script> 
    $(document).ready(function() { 
     $(function() { 
      $('#navigation a').click(function() { 
       $.getJSON('/Home/GetJobList', function (data) { 
        $("#headerJobRow").text(""); 
        $.each(data, function (i, job) { 
         $("#headerJobRow").append("<li>" + job.Title + "</li>"); 
        }); 
       }); 
      }); 
     }); 
    }); 
</script> 

     [HttpGet] 
     public JsonResult GetJobList() 
     { 
      int roll = 0; 
      if (Request.Cookies["CityId"] != null) { 
       roll = Convert.ToInt32(Request.Cookies["CityId"].Value); 
      } 
      IQueryable<JobsDb_JobPostings> jobs = roll > 1 ? _jobPostRepo.GetAll().Where(x => x.CityID == roll).OrderByDescending(x => x.PostingID) : _jobPostRepo.GetAll().OrderByDescending(x => x.PostingID); 

      return Json(jobs.ToList(), JsonRequestBehavior.AllowGet); 
     } 

답변

0

왜 유 핸들러 ready 중첩되어

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

때문에 코드가 즉시 서버 측 행동 이전에 실행됩니다 다음, 비동기 기능

$(function() { 
    // Handler for .ready() called. 
}); 
0

$ .getJSON에 해당된다 돌아왔다.

.done() 콜백을 기다리고 해당 데이터에 액세스해야합니다.

$.getJSON('/Home/GetJobList', function (data) { 
}).done(function(data){ 
    $("#headerJobRow").text(""); 
     $.each(data, function (i, job) { 
      $("#headerJobRow").append("<li>" + job.Title + "</li>"); 
     }); 

}; 

편집 : 죄송합니다 당신은되는 .done 콜백에 데이터를 매개 변수를 전달해야합니다. 그것을 보여주기 위해 코드를 업데이트했습니다.

+0

동일한 반환 값은 [] – BorHunter

+0

과 같습니다. 요청이 성공적으로 반환되면 $ .getJSON() 메소드에서 지정한 함수가 호출됩니다. http://api.jquery.com/jQuery.getJSON/ –

+0

아 맞습니다. 당신 말이 맞아요. 항상 .done() 콜백을 사용하기를 원했습니다. – TheSilverBadger

관련 문제