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

最新文章

  1. vim简单使用
  2. TypeScript Generics(泛型)
  3. Windows内核遍历驱动模块源码分析
  4. iOS_UIImage_裁切圆形头像
  5. rm: Argument list too long
  6. python剑指网络篇一
  7. ZOJ 2477 Magic Cube 暴力,模拟 难度:0
  8. LB负载均衡集群及NAT模式配置
  9. JDBC 学习笔记(二)—— 大数据+存储过程+批处理+事务管理
  10. Knockout.js 初探
  11. javascript touch事件
  12. Verilog HDL中阻塞语句和非阻塞语句的区别
  13. UEFI+GPT下安装Win10+Ubuntu16.04双系统
  14. vsftpd配置虚拟用户
  15. C语言程序设计(基础)最后一次作业-- 总结报告
  16. Python 魔术方法笔记
  17. MySQL系列详解九:MySQL级联复制演示-技术流ken
  18. Codeforces986E Prince&#39;s Problem 【虚树】【可持久化线段树】【树状数组】
  19. JavaScript深入之执行上下文栈
  20. git本地项目代码上传至码云远程仓库总结【转】

热门文章

  1. 坚持自学的第二天,bootstrap初入门
  2. 【Spark学习】Apache Spark配置
  3. HTTP响应报文与工作原理详解
  4. JVM内存结构
  5. Hellow world!
  6. 问题-XE8客户端访问Webservice时报“no selected dom vendor”
  7. Spring @PostConstruct and @PreDestroy example
  8. hdu 5640 King&#39;s Cake(BestCoder Round #75)
  9. ASP.NET(C#)中的try catch异常处理机制
  10. android中的Cursor类