2011-06-01 55 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)