簡體   English   中英

ASP.NET MVC4中的getJson問題

[英]Issue with getJson in asp.net mvc4

我有一個asp.net mvc 4項目,在其中我需要在客戶端通過ajax發送零件數據,然后顯示返回的結果。 但是,我所要回應的只是[]。 我正在調試,並且確定List <>集合不為空。 有人知道我的錯誤在哪里嗎?

<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);
        }

您為什么要嵌套ready處理程序

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

相當於

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

$ .getJSON是一個異步函數,因此,緊隨其后的代碼將在服務器端操作返回之前執行。

您需要等待.done()回調並訪問其中的數據。

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

};

編輯:對不起,您需要將data參數傳遞給.done回調。 更新了代碼以顯示該代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM