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访问是访问不到的,因此不能下载 ...
随机推荐
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇:简介及目录》(附上完整工程文件)
G-3D引擎2D射击类游戏制作教程 游戏类型: 打飞机游戏属于射击类游戏中的一种,可以划分为卷轴射击类游戏. 视觉表现类型为:2D 框架简介: Genesis-3D引擎不仅为开发者提供一个3D游戏制作 ...
- [转]python下很帅气的爬虫包 - Beautiful Soup 示例
原文地址http://blog.csdn.net/watsy/article/details/14161201 先发一下官方文档地址.http://www.crummy.com/software/Be ...
- HDU-4738 Caocao's Bridges 边联通分量
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:在有重边的无向图中,求权值最小的桥. 注意trick就好了,ans为0时输出1,总要有一个 ...
- 转】Maven学习总结(四)——Maven核心概念
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4051819.html 感谢! 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中 ...
- CodeForces 489B BerSU Ball (贪心)
BerSU Ball 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/E Description The Berland Stat ...
- 让UITableViewCell的分隔线宽度等于屏幕的宽度
3种方法: 1.自定义cell: 1).取消系统的分隔线 2).添加一个高度为1,宽度为屏幕宽度的UIView作为cell的子视图,通过设置frame或者约束使这个UIView始终在cell的底部 3 ...
- Spring EL regular expression example
Spring EL supports regular expression using a simple keyword "matches", which is really aw ...
- HDU 2586 How far away ? (LCA)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 LCA模版题. RMQ+LCA: #include <iostream> #incl ...
- 短信验证倒计时60s
$("#zphone").click(function(){ var tel2 = $("#regTel").val(); if(flag.tel){ $.po ...
- opencv 手势识别
我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. ...