2017-04-25 20 views
-1

をブロックを生成しないでくださいコードが、私はここに、バックエンドのコード</p> <p>を持っている(ASP.NET MVC)の値なし

[HttpGet] 
    public ActionResult QuestionBlocks() 
    { 
     var _id = TempData["ID"]; 

     var questBlock = db.QuestionBlocks 
      .Where(x => x.Interview_Id == (int?) _id) 
      .Select(x => new 
      { 
       ID = x.Block_ID, 
       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(questBlock, JsonRequestBehavior.AllowGet); 

    } 

あるしかし質問のいくつかは、値なしかもしれません。フロントエンドにここ

私が見る

<script> 
$(document).ready(function() { 
    question_block(); 
}); 
function question_block() { 
    $.ajax({ 
     url: '@Url.Action("QuestionBlocks", "Interwier")', 
     contentType: 'application/json; charset=utf-8', 
     type: 'GET', 
     dataType: 'json', 
     processData: false, 
     success: function(result) { 
      var email = result; 
      for (var i = 0; i <= email.length - 1; i++) { 
       var question = 
        '<div class="activeQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question1 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question2 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question3 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question4 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question5 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question6 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question7 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question8 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question9 + 
         '</div>' + 
         '<div class="hiddenQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
         email[i].Question10 + 
         '</div>'; 
       $("#questions").append(question); 
       $('.hiddenQue:empty').hide(); 

に表示する今、私は$('.hiddenQue:empty').hide();経由でそれを隠すが、それは私が欲しいものではありません、私はそれが値をしていない場合はdivを生成しないようにする必要があります。

どうすればいいですか?

答えて

0

条件を使用すると、内側にforループがあるかどうかを確認することができます。それはあなたのために働くでしょう。

<script> 
     question_block(); 

     function question_block() { 
      $.ajax({ 
       url: '@Url.Action("QuestionBlocks", "Home")', 
       contentType: 'application/json; charset=utf-8', 
       type: 'GET', 
       dataType: 'json', 
       processData: false, 
       success: function (result) { 
        var email = result; 
        for (var i = 0; i <= email.length - 1; i++) { 
         var question = ""; 
         for (var j = 1; j <= 10; j++) { 
          var getQ = email[i]["Question" + j]; 
          if (getQ) { 
           question += '<div class="activeQue" style="font-size:20px;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">' + 
               getQ + 
             '</div>'; 
          } 
         } 
         if (question != "") { 
          $("#questions").append(question); 
         } 
        } 
       } 
      }); 
     } 
    </script> 
+0

さて、感謝の また、私は '$を経由して、それを達成することができます)(削除;' –

+0

うん( 'hiddenQue空。')。。しかし、上記のコードでは、コード行の数を減らすことはできません。 –

0

このように試すことができます!

<script> 
    $(document).ready(function() { 
    question_block(); 
    }); 
    function question_block() { 
    $.ajax({ 
    url: '@Url.Action("QuestionBlocks", "Interwier")', 
    contentType: 'application/json; charset=utf-8', 
    type: 'GET', 
    dataType: 'json', 
    processData: false, 
    success: function(result) { 
     var email = result; 

     for (var i = 0; i <= email.length - 1; i++) { 
    var question=''; 
    var Question1=''; 
    var Question2=''; 
    var Question3=''; 
    var Question4=''; 
    var Question5=''; 
    var Question6=''; 
    var Question7=''; 
    var Question8=''; 
    var Question9=''; 

    email[i].Question1==''?Question1='':Question1='<div class="activeQue" 
        style="font-size:20px;position: absolute;top: 50%;left: 
      50%;transform:  translate(-50%, -50%);">' +email[i].Question1 + 
        '</div>' 
     question=question+Question1 
     //Do this for all question 

      $("#questions").append(question); 
      //$('.hiddenQue:empty').hide(); 
関連する問題