上一篇 介绍了Action 返回View, 顺便也看到了返回Json的处理, 这一篇并不看文件返回的源码, 此篇是为了应用.

1. Response返回文件

在MVC的项目中, 还是能看到很多同事, 喜欢使用 Response的方式来返回文件. 如:

public void Index()
{
var path = Server.MapPath("~/Content/Site.css");
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, , bytes.Length);
fs.Close(); Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Site.css"));
Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.BinaryWrite(bytes); Response.Flush();
}
}

当在浏览器中直接输入地址后, 会直接下载这个文件.

虽然这种方式确实可以返回文件, 但是在MVC中, 提供了一个简便的方法. 可以把文件作为返回值去返回.

2. FileResult

public ActionResult Get()
{
var path = Server.MapPath("~/Content/Site.txt");
return File(new FileStream(path, FileMode.Open), "text/plain", HttpUtility.UrlEncode("Site.txt"));
}

返回文件的时候牵涉一个 contentType 的问题, 这个contentType, 我想没人能记得住, 所以这里也提出引用, 可以在开发的时候查看一下就可以了.

一般的文件, 还可以通过  MimeMapping.GetMimeMapping("Site.txt") 的方式来获取类型.

我常用的基本也就这两中了, 当然还有别的方式, 比如返回excel的时候, 可以使用MemoryStream, 但是主要的部分都是差不多的.

最新文章

  1. 程序员眼中的 SQL Server-执行计划教会我如何创建索引?
  2. 网页中多个图标在一张图片上,使用css将各图标显示
  3. 什么是F#
  4. MySQL数据库的导入和导出
  5. ACM/ICPC 之 BFS+状态压缩(POJ1324(ZOJ1361))
  6. Lua面向对象设计
  7. JavaIO中的Reader和writer
  8. [IOS UIScrollView+PageControl]信息展示横幅
  9. 一步步学习ASP.NET MVC3 (9)——JsonReslt,JavaScript,@Ajax
  10. 趣味C程序100.1 .1 绘制余弦曲线
  11. JavaScript设计模式之代理模式
  12. Zabbix使用外部邮箱服务器发送邮件报警
  13. 怪兽z主机标准版视频测试。
  14. android 网络运营商的名字显示规则(锁定屏幕,下拉列表)
  15. 简话ASP.NET Web API
  16. python爬虫从入门到放弃(一)之初识爬虫
  17. Spring+Hibernate+Struts(SSH)框架整合
  18. struts form表单提交action处理之后没有跳转页面
  19. memcached安装、使用
  20. 五、UI开发之核心基础——约束(深入)

热门文章

  1. 20145232 韩文浩 《Java程序设计》第6周学习总结
  2. Sensor
  3. 第80讲:List的泛型分析以及::类和Nil对象
  4. 关于cmp函数参数中的&符号
  5. hdu 4923 单调栈
  6. JVM的參數
  7. Beta版本冲刺准备
  8. ConcurrentHashMap源码解析(1)
  9. BZOJ 5194--[Usaco2018 Feb]Snow Boots(STL)
  10. PHP eval函数