Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NETMVC4项目中创建显示文件列表的视图_C#_Asp.net Mvc_Asp.net Mvc 4_Viewbag - Fatal编程技术网

C# 如何在ASP.NETMVC4项目中创建显示文件列表的视图

C# 如何在ASP.NETMVC4项目中创建显示文件列表的视图,c#,asp.net-mvc,asp.net-mvc-4,viewbag,C#,Asp.net Mvc,Asp.net Mvc 4,Viewbag,我正在学习ASP.NETMVC4编程。目前,我想在网页上显示文件列表。以下是我至今所做的 在HomeController.cs中,我编辑了联系人操作,如下所示: public ActionResult Contact() { ViewBag.Message = "Your file page."; DirectoryInfo dirInfo = new DirectoryInfo(@"c:\"); List<string> filenames=dirIn

我正在学习ASP.NETMVC4编程。目前,我想在网页上显示文件列表。以下是我至今所做的

HomeController.cs
中,我编辑了
联系人
操作,如下所示:

public ActionResult Contact()
{
     ViewBag.Message = "Your file page.";
     DirectoryInfo dirInfo = new DirectoryInfo(@"c:\");
     List<string> filenames=dirInfo.GetFiles().Select(i=>i.Name).ToList();
     ViewBag.data = filenames; 
     ///^^ Is this correct??    

     return View();
}

您在页面上显示的主要内容(即视图的“用途”)应该是模型。查找
@model
指令。这里应该是
@model List
。然后使用
返回视图(文件名),而不是设置
ViewBag.data
。在您的视图中,您将能够访问强类型模型。如果您对我刚才所说的有任何不理解的地方,您需要阅读更多关于ASP.NET MVC中viewmodel角色的信息。

正如@ChrisV所写,您可能需要创建强类型视图。这意味着您正在将模型与视图关联。然后,使用以模型为参数的
View()
重载传递数据。在当前版本中,使用
ViewBag
将数据发送到视图。这没有错,但至少在学习过程中,最好创建一个强类型视图

话虽如此,我可能会做以下更改:

在控制器中,获取
FileInfo
对象的列表,而不是文件名。
FileInfo
类型公开了可用于丰富显示数据的其他功能

public ActionResult Contact()
{
    ViewBag.Message = "Your file page.";
    DirectoryInfo dirInfo = new DirectoryInfo(@"c:\");
    List<FileInfo> files = dirInfo.GetFiles().ToList();

    //pass the data trough the "View" method
    return View(files);
}
public ActionResult联系人()
{
ViewBag.Message=“您的文件页。”;
DirectoryInfo dirInfo=新的DirectoryInfo(@“c:\”);
List files=dirInfo.GetFiles().ToList();
//通过“查看”方法传递数据
返回视图(文件);
}
接下来,需要在视图中指定模型类型,并迭代和显示数据:

@model IEnumerable<FileInfo>

@{
     ViewBag.Title = "Contact";
}

<h2>Contact</h2>

<ul>
@foreach (FileInfo file in Model)
{
     <li>@file.Name</li>
}
</ul>
@model IEnumerable
@{
ViewBag.Title=“联系人”;
}
接触
    @foreach(模型中的FileInfo文件) {
  • @文件名
  • }

请注意,您在页面上实际显示的内容和方式取决于您。您可以为文件创建一个表,并显示创建时间、大小甚至命令(下载、删除等)。这只是一个“模板”;照此使用。

老实说,这是我的第一个ASP.NET MVC 4编程。既然我已经报名参加了这门课,我需要马上了解这门课。我迫不及待地等着整本书完成,然后开始开发应用程序。所以我是按照这一章学习的。非常感谢你的投入。。
@model IEnumerable<FileInfo>

@{
     ViewBag.Title = "Contact";
}

<h2>Contact</h2>

<ul>
@foreach (FileInfo file in Model)
{
     <li>@file.Name</li>
}
</ul>