zoukankan      html  css  js  c++  java
  • ASP.NET MVC 下载列表

    在ASP.NET WebForm里要想网站某个文件夹的文件列出来供用户下载似乎很简单,WebForm帮你做了很多事,只需要在Html文件里写:

    <a href="~/download/">下载列表</a>

    即可在点击链接后打开下载目录(download是个文件夹,里面放着一些文件。)。

    而在MVC里这样写是不行的,因为MVC不是用文件夹目录的方式来访问,而是采用路由的方式。所以,就算超链接指向了正确的路径也会提示找不到文件。

    在MVC里应该怎样做呢?

    一、可以不用改动Controller,只在View里写一个循环访问文件夹的方法即可(UploadModel是站点根目录下的Content文件夹下的一个文件夹)。

    <h4>下载模板</h4>
    <table class="table">
    <tr>
     <th>文件名</th>
     <th>下载</th>
    </tr>
    @{
      foreach (string fullFilePath in Directory.GetFiles(Server.MapPath("~/Content/UploadModel")))
      {
        <tr>
           <td><a href="@Href("~/Content/UploadModel", Path.GetFileName(fullFilePath))">@Path.GetFileName(fullFilePath)</a></td>
           <td><a href="@Href("~/Content/UploadModel", Path.GetFileName(fullFilePath))">下载</a></td>
        </tr>
       }
    }
    </table>

    二、或者在Controller和View里都改动下:

    Controller

    public ActionResult Upload()
    {        
      var files = Directory.EnumerateFiles(Server.MapPath("~/Content/UploadModel"));    
      return View(files);
    }

    View

    @foreach (var fullPath in Model)    
    {
      var fileName = Path.GetFileName(fullPath);    
      <tr>     <td><a href="@Href("~/Content/UploadModel", fileName)">@fileName</a></td>
      </tr>
    }

    这样都可以得到一个下载文件的列表。

    只是下载单个的文件:

    <a href="@Href("~/Content/myfile.zip")">下载</a>

    --End--

  • 相关阅读:
    Mac连接远程Linux管理文件(samba)
    centos6 防火墙iptables操作整理
    安装postgresql
    linux CentOS6.5 yum安装mysql 5.6
    centos--git搭建之Gogs安装
    查看mysql 默认端口号和修改端口号
    centos之mysql安装配置使用
    流媒体服务器SRS部署
    redis配置文件参数说明
    redis 安装
  • 原文地址:https://www.cnblogs.com/ibgo/p/3655208.html
Copyright © 2011-2022 走看看