2017-10-09 62 views
0

試圖構建一個mvc項目,該項目將從數據庫上傳的圖像加載到輪播中。我的問題是,圖像將創建一個byte []列表併發送到控制器作爲JsonResult進行查看。問題是我不知道如何訪問從視圖中的JS代碼中的控制器返回的每個元素。 這裏是我的控制器:從JsonResult獲取值

public JsonResult GetImages(string date, string sessionNumber) 
    { 
     int selectedSessionNumber = Convert.ToInt32(sessionNumber); 
     Guid getClassInfoId = (Guid)Session["infoId"]; 
     var getSessionId= (from c in db.Session 
      where c.ClassInfoID == getClassInfoId && c.SessionNumber == selectedSessionNumber 
      select c.ID).ToList(); 
     List<byte[]> getPics =new List<byte[]>(); 

     foreach (var item in getSessionId) 
     {   
      getPics.Add((from c in db.ClassPicture where c.SessionID == item select c.PicFile).First()); 

     } 
     List<string> imagesBase64 = new List<string>(); 
     foreach (var pics in getPics) 
     { 
      var base64 = Convert.ToBase64String(pics); 
      imagesBase64.Add(base64); 
     } 

     return Json(imagesBase64, JsonRequestBehavior.AllowGet); 

,這是我的js代碼:

function ShowImage() { 
       $.ajax({ 
        url: '@Url.Action("GetImages", "Main")', 
        type: 'POST', 
        traditional: true, 
        data: { 'date': selectedDate, 'sessionNumber': selectedSession }, 
        success: function (myData) { 
          var imgSrc = "data:image/jpeg;base64," + myData; 
           $('<div class="item"><img src=' + 
            imgSrc + 
            '><div class="carousel-caption"></div></div>').appendTo('.carousel-inner'); 
           $('<li data-target="#carousel-example-generic" data-slide-to= 0></li>') 
            .appendTo('.carousel-indicators'); 
           // } 
           //} 
           $('.item').first().addClass('active'); 
           $('.carousel-indicators > li').first().addClass('active'); 
           $('#carousel-example-generic').carousel(3); 


           //  $('#carousel-example-generic').carousel(); 
          } 
        }); 
      }; 

回答

1
  1. 指定您的jQuery AJAX dataType爲 'JSON'(數據輸入你從服務器期待回)。
  2. 使用$.each(myData, function(idx, imageBase64) { ... })myData上循環。