2011-06-01 73 views
1

我有一個控制器,使用DirectoryInfo.GetFiles()使用MVC 3

public ActionResult Index() 
     { 
      DirectoryInfo vidDir = null; 
      FileInfo[] files = null; 

      string dirPath = @"/Content/Videos"; 
      vidDir = new DirectoryInfo(Server.MapPath(dirPath)); 
      files = vidDir.GetFiles(); 

      return View(files); 
     } 

在我看來,我列舉的文件與返回目錄中的文件列表Dyanmically創建超鏈接到所有文件夾中下面的代碼:

<ul> @foreach (var file in Model) { 
        <li> 
        @file 
        </li> 
      } 
        </ul> 

我想這樣做是foreach (var file in Model) { create a hyperlink to file }

我一個鏈接使用@ html.actionlink

能硬編碼
@Html.ActionLink("Test Link", "file1.txt", "Content/Videos"); 

當我把在@file前兩個參數,我得到一個錯誤,指出:

「System.Web.Mvc.HtmlHelper」 有一個名爲 沒有適用的方法「的ActionLink」但似乎有這個名字」

如何使用@ html.Actionlink創建超鏈接傳遞到視圖中的所有文件的擴展名 方法?

回答

3

這些似乎是直接鏈接到這些文件。如果是這樣

<a href="@Url.Content(string.Concat("Content/Videos/", @file))">@file</a> 
0

我使用下面的代碼,它工作得很好

foreach (var menuName in menuNames) 
{ 
    @Html.ActionLink(menuName.Value, menuName.ActionName, menuName.ControllerName) 
} 

(我用這個在MVC 4)