2014-03-06 68 views
0

我有一個asp.net mvc 4項目,在客戶端我需要通過ajax發送零件數據,然後顯示返回的結果。但我所有的迴應是[]。我正在調試,我確定沒有列出<>集合。有人知道我的錯誤在哪裏嗎?問題與asp.net中的getJson mvc4

<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

爲什麼是U築巢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