2017-08-18 10 views
0

MVCビューでActiveDirectoryユーザーのthumbnailPhotoプロパティを表示しようとしています。 私はEmployeeという名前のクラスのリストに必要なプロパティを解析しています:img srcプロパティをbyte []から設定します

for (int counter = 0; counter < resultCol.Count; counter++) 
      { 
       result = resultCol[counter]; 

       if (result.Properties.Contains("samaccountname") && 
        result.Properties.Contains("displayname") && 
        result.Properties.Contains("sn") && 
        result.Properties.Contains("givenName")) 
       { 
        list.Add(new Employee 
        { 
         Email = (String)result.Properties["samaccountname"][0], 
         FirstName = (String)result.Properties["givenName"][0], 
         LastName = (String)result.Properties["sn"][0], 
         pictureBLOB = result.Properties.Contains("thumbnailPhoto") ? (byte[])result.Properties["thumbnailPhoto"][0] : null, 
        }); 
       } 
      } 

私はインデックスビューで画像を表示する方法についていくつかの研究を行なったし、可能な解決策として、これを見つけた:

<div class="container"> 
@foreach (var item in Model) 
{ 
    String imgSrc = String.Empty; 
    String base64 = String.Empty; 

    if (item.pictureBLOB != null) 
    { 
     base64 = Convert.ToBase64String(item.pictureBLOB); 
     imgSrc = String.Format("data:image;base64,{0}", base64); 

    } 

    <div id="@Html.DisplayFor(i => item.Number)" class="col col-lg-2 col-md-4 col-sm-6"> 
     <a class="post" mailto="@item.Email" href="#"> 
      <img src="{@imgSrc}" title="@Html.DisplayFor(i => item.LastName), @Html.DisplayFor(i => item.FirstName)" /> 
      @*onerror="this.src = '../../Content/Images/nopicture.gif';" />*@ 
     </a> 
    </div> 
} 
</div> 

しかし、私がインデックスページを呼び出すと、画像は表示されません。プロフィール画像を表示する他の可能性はありますか?

答えて

0

最後に解決策が見つかりました。 @imgSrcの中括弧を削除するだけでした。

<img src="{@imgSrc}" title="@Html.DisplayFor(i => item.LastName), @Html.DisplayFor(i => item.FirstName)" /> 
関連する問題