2017-08-18 89 views
0

我想在MVC视图中显示ActiveDirectory用户的thumbnailPhoto属性。 我解析所需要的属性一类名为Employee的List:从字节设置img src属性[]

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)" />