【问题标题】:How to create view to display list of files in ASP.Net MVC 4 project如何创建视图以显示 ASP.Net MVC 4 项目中的文件列表
【发布时间】:2015-01-30 07:45:50
【问题描述】:

我正在学习 ASP.Net MVC 4 编程。目前,我想在网页上显示文件列表。以下是我到目前为止所做的。

HomeController.cs我编辑Contact动作如下:

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();
}

我希望将文件名显示到网页上。在我看来我应该写什么?我右键单击Contact 操作并获得默认视图,其中包含:

@{
    ViewBag.Title = "Contact";
}

<h2>Contact</h2>

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 viewbag


    【解决方案1】:

    正如@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);
    }
    

    接下来,您需要在视图中指定模型类型,并迭代和显示数据:

    @model IEnumerable<FileInfo>
    
    @{
         ViewBag.Title = "Contact";
    }
    
    <h2>Contact</h2>
    
    <ul>
    @foreach (FileInfo file in Model)
    {
         <li>@file.Name</li>
    }
    </ul>
    

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

    【讨论】:

    • 老实说,这是我的第一个 ASP.NET MVC 4 编程。而且由于我已经注册了这门课程,我需要即时了解该主题。我等不及整本书读完,然后开始开发应用程序。所以我正在按照章节学习。非常感谢您的投入..
    【解决方案2】:

    您在页面上显示的主要内容(即视图的“用途”)应该是模型。查找@model 指令。这里应该是@model List&lt;string&gt;。然后不要设置ViewBag.data,而是使用return View(filenames);。在您看来,您将能够访问强类型模型。如果你对我刚才所说的内容有什么不明白的地方,你需要阅读更多关于视图模型在 ASP.NET MVC 中的作用。

    【讨论】:

      猜你喜欢
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2022-01-16
      • 1970-01-01
      相关资源
      最近更新 更多