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--

  • 相关阅读:
    Linux下查看Nginx安装目录、版本号信息及当前运行的配置文件
    UUID.randomUUID()简单介绍
    从jscript脚本混淆说起
    python requests高级耍法
    python sanic中文参考资料
    python grequests和requests比较
    使用aiohttp的一个小例子
    redis加入到Windows系统服务
    aiohttp/asyncio测试代理是否可用
    Charles安装
  • 原文地址:https://www.cnblogs.com/ibgo/p/3655208.html
Copyright © 2011-2022 走看看