2014-09-23 81 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

相关问题