我有一个控制器,它使用DirectoryInfo.GetFiles()返回目录中的文件列表
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);
}
在我看来,我使用以下代码枚举文件:
<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创建传递给视图的所有文件的超链接?
答案 0 :(得分:3)
这些似乎是这些文件的直接链接。如果是的话
<a href="@Url.Content(string.Concat("Content/Videos/", @file))">@file</a>
答案 1 :(得分:0)
我正在使用下面的代码,它工作得很好
foreach (var menuName in menuNames)
{
@Html.ActionLink(menuName.Value, menuName.ActionName, menuName.ControllerName)
}
(我在MVC 4中使用它)