2017-04-04 70 views
1

我有AJAX調用的作品,並返回我JSON追加JSON結果通過AJAX(ASP.NET MVC)的div

這裏是AJAX調用

<script> 
$('#display').click(function() { 
    var vacancyId = $("#vacancy").val(); 
    var model = { 
     vacancyId: vacancyId 
}; 

    $.ajax({ 
     url: '@Url.Action("QuestionBlocks", "Questions")', 
     contentType: 'application/json; charset=utf-8', 
     data: JSON.stringify(model), 
     type: 'POST', 
     dataType: 'json', 
     processData: false, 
     success: function (data) { 
      $(".list").append('<div>' + data.Question1 + '</div>'); 

     } 
    }); 
     }); 

這裏是服務器端

[HttpPost] 
    public ActionResult QuestionBlocks(int vacancyId) 
    { 
     var items = db.QuestionBlocks 
         .Where(x => x.Interview.VacancyId == vacancyId) 
         .Select(x => new 
         { 
          ID = x.Block_ID.ToString(), 
          Question1 = x.Question1, 
          Question2 = x.Question2, 
          Question3 = x.Question3, 
          Question4 = x.Question4, 
          Question5 = x.Question5, 
          Question6 = x.Question6, 
          Question7 = x.Question7, 
          Question8 = x.Question8, 
          Question9 = x.Question9, 
          Question10 = x.Question10, 

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

它返回這樣

數據

{ID: "1087", Question1: "Расскажите о себе", Question2: "Tell about you",…}

我在這個問題 - $(".list").append('<div>' + data.Question1 + '</div>');效果很好,但它顯示undefined

爲什麼會這樣?

+0

您可以打印成功FUNC數據?請添加'console.log(數據)! !!(「。list」)。append ...'。 –

回答

0

好像裏面有data一個數組,所以嘗試這樣的成功代碼:

$.ajax({ 
    url: '@Url.Action("QuestionBlocks", "Questions")', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.stringify(model), 
    type: 'POST', 
    dataType: 'json', 
    processData: false, 
    success: function (data) { 
     var question1 = data[0]; 
     $(".list").append('<div>' + question1.Question1 + '</div>'); 

    } 
}); 
+0

有現在這樣'意外標記Ø在JSON在位置1' – Eugene

+0

嘗試'的console.log(數據)'和在這裏發表你的迴應。 –

+0

'數組[1] : 對象 ID : 「1087」 問題1 : 「Расскажитеосебе」 問題2 : 「告訴你」 問題3 : 「告訴你的家人「 問題4 : 」告訴你的家人「 Question5 : 」告訴你「 Question6 : 「大聲笑」 Question7 : 「告訴你的家人」 Question8 : 「大聲笑」 Question9 : 「告訴你的家人」 Question10 : 「Вопрос」 __proto__ : Object' – Eugene

0

這聽起來像你需要將數據解析到JSON。嘗試使用這樣的:

$(".list").append('<div>' + JSON.parse(data).Question1 + '</div>'); 
+0

'意外標記Ø在JSON在位置1'我有這個現在 – Eugene

0

我認爲它不會返回{ID: "1087", Question1: "Расскажите о себе", Question2: "Tell about you",…}。你確定嗎? items將數組(ToList())。

[{ID: "1087", Question1: "Расскажите о себе", Question2: "Tell about you",…}] 

因此,獲得第一:

var question1 = data[0] 
$(".list").append('<div>' + question1.Question1 + '</div>'); 
+1

如果我刪除'var data = JSON.parse(data);'all works大。謝謝 – Eugene