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--
ASP.NET MVC 下载列表的更多相关文章
- Asp.net mvc 下载文件
前言 最近有需求需要下载文件,可能是image的图片,也可能是pdf报告,也可能是微软的word或者excel文件. 这里就整理了asp.net mvc 和asp.net webapi 下载的方法 A ...
- ASP.NET MVC下载excel文档
问题来自论坛: 很早以前,学习做asp.net练习时,就是分享过<ASP.NET MVC应用程序实现下载功能>http://www.cnblogs.com/insus/p/3615714. ...
- asp.net mvc 下载文件 txt doc xsl 等等
不废话,直接上代码,就是这么简单 public FileStreamResult StreamFileFromDisk() { // string path = AppDomain.Current ...
- ASP.NET MVC应用程序实现下载功能
ASP.NET MVC应用程序实现下载功能 上次Insus.NET有在MVC应用程序实现了上传文件的功能<MVC应用程序显示上传的图片> http://www.cnblogs.com/in ...
- Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)
之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下. 一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...
- ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定
在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...
- asp.net MVC控制器中返回JSON格式的数据时提示下载
Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...
- ASP.NET MVC文章附加有源码下载的文章
很多一段时间以来,Insus.NET有分享很多有关ASP.NET MVC的文章,每隔一段时间,会把源码以及数据库分享供大家下载. 你可以按时间排序,文章越新,源码以及数据数据也就越新. 你可以从下面的 ...
- asp.net MVC 自动下载apk
在Asp.net MVC中直接把.apk文件放入/Upload/App/ 路径下,然后通过IIS发布完之后,再通过http://xxx/Upload/App/xx.apk访问是访问不到的,因此不能下载 ...
随机推荐
- Binder机制
在Android系统的Binder机制中,由一系统组件组成,分别是Client.Server.Service Manager和Binder驱动程序,其中Client.Server和Service Ma ...
- [Hive - LanguageManual] Sampling
Sampling Syntax Sampling Bucketized Table Block Sampling Sampling Syntax 抽样语法 Sampling Bucketized T ...
- [Hive - LanguageManual] Archiving for File Count Reduction
Archiving for File Count Reduction Note: Archiving should be considered an advanced command due to t ...
- 轻松突击ThreadLocal
本文出自 代码大湿 代码大湿 ThreadLocal是用来保存线程的本地变量,可以保证每个线程都有一个自己的变量(包括static变量). 本文所有代码请点击我 1 看个实际场景. 我们要设计一个序列 ...
- 15个顶级Java多线程面试题及答案
1)现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉.这个多线程问题比 ...
- 第二百七十四、五、六天 how can I 坚持
三天小长假这么快就过去了,好快啊.基本都是在济南过的. 元旦.坐车回济南.下午在万科新里程看了一下午房子,没有买啊,93的现在八千六七,有点贵啊,户型也不是自己喜欢的. 晚上一块吃了个饭,还行,晚上在 ...
- Web Service学习之一:Web Service原理
一.定义 Web Service 不是框架也不是技术 而是解决远程调用.跨平台调用.跨语言调用问题的一种规范. 二.应用1.同一个公司新.旧系统的整合:比如CRM系统与OA.客服系统相互调用2.不同公 ...
- ecstore 后台登陆跳转到 api失败,中心请求网店API失败
解决过程没有具体参与,官方解决后回复的邮件,可以参考一下: 后台登陆错误图: 商派解决方法邮件: 特别注意:这个错误提示有时候也跟ecstore的nginx服务器伪静态有关,具体参考: htt ...
- Spring SimpleJdbcTemplate Querying examples
Here are few examples to show how to use SimpleJdbcTemplate query() methods to query or extract data ...
- 在C++中定义常量的两种方法的比较
常量是定以后,在程序运行中不能被改变的标识符.C++中定义常量可以用#define .const 这两种方法.例如:#define PRICE 10 //定义单价常量10const int PRICE ...