ASP.NET MVC应用程序实现下载功能

上次Insus.NET有在MVC应用程序实现了上传文件的功能《MVC应用程序显示上传的图片》 http://www.cnblogs.com/insus/p/3597543.html 
有上传就有下载。本篇博文是把上传的文件以列表的形式显示View视图上,然后用户可以点击下载。

为了解更多的内容,建议你先看上链接一篇。

在MVC应用程序的Entity目录下,找到和打开FileLibraryEntity.cs,添加一个返回DataTable的方法:

#1写一个GetUploadFileByPrimarykey(FileLibrary fl)函数,返回DataTable,目的是传入主键,从数据库获取相关的文件信息。

#2 与#3修改的地方,与本篇没有关系,Insus.NET只是看到有代码冗余,随便重构而已。

接下来,自定义一个Result,叫DownloadResult吧,这个类有继承了ContentResult类,还需要override ExecuteResult()方法:

写控制器:

186行代码是视图,将用来显示下载列表。

191行代码,是下载方法。

#1标记,是接收参数。

#2标记,获取数据表中某一笔记录。

#3标记,获取旧文件名,和新文件名(即是存在应用程序目录中的文件名)。

#4标记,处理下载文件路径。

#5标记,获取下载文件的数据流。

下面的实现步骤,是创建视图FileDownloadDemo.cshtml:

呈现数据记录:

运行看看,它显示异常:

检查,发现传入的参数名与方法接收的名不一致:

把fId改为id。再运行看看:

似乎正常。但是细心的网友也许发现最后一个链接,在下载时,文件名已经变成了"2"。中文文件名在下载时,有点异常。
没事的,Insus.NET知道问题在哪里:

把#28行代码改为#29 #30行代码。
再运行看看:

 
 

ASP.NET MVC应用程序实现下载功能的更多相关文章

  1. 为ASP.NET MVC应用程序使用高级功能

    为ASP.NET MVC应用程序使用高级功能 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...

  2. 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

    在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...

  3. Contoso 大学 - 1 - 为 ASP.NET MVC 应用程序创建 EF 数据模型

    原文 Contoso 大学 - 1 - 为 ASP.NET MVC 应用程序创建 EF 数据模型 原文地址:Creating an Entity Framework Data Model for an ...

  4. NHibernate构建一个ASP.NET MVC应用程序

    NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...

  5. ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)

    概述 安全在web领域是一个永远都不会过时的话题,今天我们就来看一看一些在开发ASP.NET MVC应用程序时一些值得我们注意的安全问题.本篇主要包括以下几个内容 : 认证 授权 XSS跨站脚本攻击 ...

  6. asp.net MVC 应用程序的生命周期

    下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html       ...

  7. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序创建更复杂的数据模型

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第六篇:为ASP.NET MVC应用程序 ...

  8. [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据

    这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...

  9. ASP.NET MVC应用程序执行过程分析

    ASP.NET MVC应用程序执行过程分析 2009-08-14 17:57 朱先忠 朱先忠的博客 字号:T | T   ASP.NET MVC框架提供了支持Visual Studio的工程模板.本文 ...

随机推荐

  1. Entity Framework Code First学习系列

    Entity Framework Code First学习系列目录 Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity ...

  2. POJ 1742 Coins (多重背包)

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 28448   Accepted: 9645 Descriptio ...

  3. IMSDroid遇到注册问题(蘼1S 计3等一下 Android4.4)

    最近的研究视频通话,开源项目IMSDroid编译测试,这实在是不幸的,饭1 Android4.1和大米3 Android4.4该系统不是对生命和死亡登记.... .后来通过大神日志分析和建议.发现改变 ...

  4. java_部署jar

    javaw -ms100m -mx256m -jar MyApp.jar 上面指定了使用最小100M最大256M内存. 4)如果main函数要带参数 java -mss10m -mx300m -jar ...

  5. Oracle缓存机制

  6. MVC EF 修改 封装类 通用泛型方法(二)

    修改 这个 方法 如下. 排除 null 值. /// <summary> /// 修改 多数 数据, 个别数据除外, proNames 不写 则是 修改全部 /// </summa ...

  7. 我的MYSQL学习心得(十一)

    原文:我的MYSQL学习心得(十一) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYS ...

  8. Dungeon Master poj 2251 dfs

    Language: Default Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16855 ...

  9. Android学习之 WebView使用小结

    这段时间基于项目须要 在开发中与WebView的接触比較多,前段时间关于HTML5规范尘埃落定的消息出如今各大IT社区头版上,更有人说:HTML5将颠覆原生App开发 尽管我不太认同这一点 可是关于H ...

  10. API接口开发简述示例

    作为最流行的服务端语言PHP(PHP: Hypertext Preprocessor),在开发API方面,是很简单且极具优势的.API(Application Programming Interfac ...