C# MVC在视图中显示文件夹中的文件
我想做的是在MVC应用程序的视图中显示服务器上的文件夹的内容 我有我认为应该采取的行动,但是我有点不确定如何实施相应的观点,我想知道是否有人可以指出正确的方向。(此外,如果有人认为我的行为可以改进,欢迎提供建议:) 行动如下:C# MVC在视图中显示文件夹中的文件,c#,asp.net-mvc,view,.net,C#,Asp.net Mvc,View,.net,我想做的是在MVC应用程序的视图中显示服务器上的文件夹的内容 我有我认为应该采取的行动,但是我有点不确定如何实施相应的观点,我想知道是否有人可以指出正确的方向。(此外,如果有人认为我的行为可以改进,欢迎提供建议:) 行动如下: public ActionResult Index() { DirectoryInfo salesFTPDirectory = null; FileInfo[] files = null;
public ActionResult Index()
{
DirectoryInfo salesFTPDirectory = null;
FileInfo[] files = null;
try
{
string salesFTPPath = "E:/ftproot/sales";
salesFTPDirectory = new DirectoryInfo(salesFTPPath);
files = salesFTPDirectory.GetFiles();
}
catch (DirectoryNotFoundException exp)
{
throw new FTPSalesFileProcessingException("Could not open the ftp directory", exp);
}
catch (IOException exp)
{
throw new FTPSalesFileProcessingException("Failed to access directory", exp);
}
files = files.OrderBy(f => f.Name).ToArray();
var salesFiles = files.Where(f => f.Extension == ".xls" || f.Extension == ".xml");
return View(salesFiles);
}
任何帮助都将不胜感激,谢谢:)
FileInfo
对象,还是只检索文件路径?如果后者为真,只需将IEnumerable
返回到视图(而不是IEnumerable
,这是您在上述代码中所做的)。提示:只需向Linq表达式添加一个Select
调用这是razor视图的简化示例。它会将您的文件名输出到HTML表中
@model IEnumerable<FileInfo>
<h1>Files</h1>
<table>
@foreach (var item in Model) {
<tr>
<td>
@item.Name
</td>
</tr>
}
</table>
@model IEnumerable
文件夹
@foreach(模型中的var项目){
@项目名称
}
如果只需要文件名,则可以将Linq查询更改为
files = files.Where(f => f.Extension == ".xls" || f.Extension == ".xml")
.OrderBy(f => f.Name)
.Select(f => f.Name)
.ToArray();
return View(files);
然后(假设默认项目模板)将以下内容添加到Index.cshtml视图
<ul>
@foreach (var name in Model) {
<li>@name</li>
}
</ul>
@foreach(模型中的变量名称){
- @名字
}
哪个将显示文件名列表是否仅将其显示为列表?如果是这样,标准的索引视图就不远了。在MVC 3中创建视图时,您可以选择一个模板作为基础。感谢您的回复。你说得对,我需要做的就是列出文件夹中的文件。