2014-09-23 78 views
0

我想要獲取特定文件夾中的jpg文件的列表,並通過json將該列表返回到角引導輪播。如果我以json格式對文件列表進行硬編碼並將其手動放在範圍內,角引導部分工作正常,但我無法弄清楚如何從此web api控制器以適當的格式返回數據。問題主要在於我相信的foreach循環。我用@符號,雙引號,單引號等方式嘗試了各種方法。我肯定會停留在這一點上。謝謝。Web API通過JSON返回文件夾中的文件列表

[Route("api/GetIncidentPhotos/{Id}/Incidents")] 
public IEnumerable<string> GetIncidentPhotos(int Id) 
{ 
    List<string> files = new List<string>(); 
    DirectoryInfo dirInfo = new DirectoryInfo(@"C:\SecurityManager\Photos\3\"); 

    foreach (FileInfo fInfo in dirInfo.GetFiles()) 
    { 
     files.Add("{ 'path:' + '\\Photos\\3\\' + fInfo.Name + '}' ");    
    } 

    return files.ToList(); 

} 

下面是HTML /引導/角度使用從API調用返回構建圖片輪播文件列表標記。

<div class="carousel-inner"> 
    <div class="item" ng-class="{active:!$index}" ng-repeat="photo in photoPath">    
     <img src="{{ photo.path }}" class="img-responsive" style="border: solid 1px;"> 
    </div> 
</div> 

回答

2

首先,爲您的路徑對象使用模型類,因此您不必依靠手動序列化爲JSON。

[Route("api/GetIncidentPhotos/{Id}/Incidents")] 
    public IEnumerable<FilePath> GetIncidentPhotos(int Id) 
    { 
     List<FilePath> files = new List<FilePath>(); 
     DirectoryInfo dirInfo = new DirectoryInfo(@"C:\SecurityManager\Photos\3\"); 

     foreach (FileInfo fInfo in dirInfo.GetFiles()) 
     { 
      files.Add(new FilePath(){ path = @"\Photos\3\" + fInfo.Name});  
     } 

     return files.ToList(); 
    } 
    public class FilePath 
    { 
     public string path { get; set; } 
    } 
+0

很好!謝謝! – 2014-09-23 03:58:11

相關問題