我有一个控制器操作ActionResult
,它将目录中的所有文件列为:
public ActionResult Index()
{
string[] txtFiles = Directory.GetFiles(Server.MapPath("~/TextFiles/"));
return View(txtFiles);
}
并在index.cshtml
我有
@model List<txtFiles>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<ul>
@foreach (var i in Model)
{
<li>@Html.ActionLink(System.IO.Path.GetFileName(i), "FileContent")</li>
}
</ul>
但我不确定我应该在model
传递什么?我已经试过了
@model List<txtFiles>
但它没有用,我收到了这个错误
答案 0 :(得分:3)
使用@model string [] 要么 @model IEnumerable 代替 @model List。
因为txtFiles不是类型。希望这会对你有所帮助。
答案 1 :(得分:2)
您的模型不是List<txtFiles>
,而是string[]
在视图中更改模型。
@model List<txtFiles>
应该变为@model string[]
或@model IEnumerable<string>
答案 2 :(得分:2)
请使用Razor代码中的List<txtFiles>
或string[]
,而不是IEnumerable<string>
。您尝试使用txtFiles
作为类型,这是错误的,因为它是变量的名称。