关于asp.net mvc4 在IE8下 导出excel失败的解决办法
在使用FileResult向浏览器输出文件时(pdf,excel等),通常这样做:
byte[] fileContents = Encoding.UTF8.GetBytes(sbHtml.ToString());//拼接的table
var fileStream = new MemoryStream(fileContents);
return File(fileStream, "application/ms-excel", "统计.xls");
在谷歌、火狐下测试没问题。但在IE8下提示这个:

发现文件没有扩展名,而是显示Controller名称。
试了下:如果把输出的文件名改成英文名就可以正常保存。如果是要中文名,必须加Server.UrlPathEncode();对字符串路径编码
return File(fileStream, "application/ms-excel", Server.UrlPathEncode("统计.xls"));
补充:在google该问题时,有这样的回答,需要加Cache-control
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var browserInfo = Request.Browser.Browser;
if (filterContext.Result is FileResult)
{
filterContext.HttpContext.Response.CacheControl = browserInfo == "IE" ? "private" : "no-cache";
}
}
可以参考:http://stackoverflow.com/questions/16846054/asp-net-mvc-3-file-download-not-working-in-ie8
关于asp.net mvc4 在IE8下 导出excel失败的解决办法的更多相关文章
- 使用asp.net MVC4中的Bundle遇到的问题及解决办法
背景 之前有过使用MVC3的经验,也建过MVC4的基本样例看过,知道有bundle这么一个方法. 近日想建个网站使用MVC4,但是我觉得在基本样例上改不好,有太多无用的东西,所以就建了一个空白的MVC ...
- 解决IE8下不兼容rgba()的解决办法
rgba()是css3的新属性,所以IE8及以下浏览器不兼容,这怎么办呢?终于我找到了解决办法. 解决办法 我们先来解释以下rgba rgba: rgba的含义,r代表red,g代表green,b代表 ...
- centos下httpd 启动失败的解决办法
[root@csit yang]# service httpd start Starting httpd: [FA ...
- 在Windows 7 64位下注册ActiveX失败的解决办法
copy Chart10W.dll %SystemRoot%\SysWOW64\ copy cellweb5.inf %SystemRoot%\SysWOW64\ copy hado.dll %S ...
- linux下执行脚本失败的解决办法
现象: 1的解决办法:赋予该文件可执行权限即可,chmod +x docker.sh 2的解决办法:https://blog.csdn.net/youzhouliu/article/details/7 ...
- ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)
转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...
- ASP.Net MVC中数据库数据导出Excel,供HTTP下载
本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...
- IE8下导入EXCEL数据传到客户端以附件下载
IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...
- 转:ASP.NET MVC 将IList<T>导出Excel文档的泛型类
/// <summary> /// 提供将泛型集合数据导出Excel文档. /// </summary> /// <typeparam name="T" ...
随机推荐
- 【leetcode】367. Valid Perfect Square
题目描述: Given a positive integer num, write a function which returns True if num is a perfect square e ...
- Ajax乱码问题
Ajax中文乱码问题 1.js代码 var userName=$("#userName").val(); var url = "user/login.action?u ...
- gcc与g++的区别
一:gcc与g++比较 编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确, ...
- English Learning
EnglishPod 百度云盘:http://pan.baidu.com/s/1eQUJquA
- 过滤字段中HTML标签
代码中只是过滤了一部分标签,例如span这些还是没有过滤,如果有更好办法的,可以帮忙补充 create FUNCTION [dbo].[CleanHTML] (@HTMLText VARCHAR(MA ...
- EasyUI_Datagrid学习总结
EasyUI_Datagrid学习总结 2016年7月25日星期一 一.简介 Easyui中的datagrid从总的作用上讲,就是在列表上显示数据,类似于table,但是在table的基础上,此控件更 ...
- 基础学习总结(四)--SQLite
1. SQLiteDatabase 操作SQLite数据库的类.可以执行SQL语句,对数据库进行增.删.查.改的操作.也可以进行transaction的控制.很多类对数据库的操作最终都是通过SQL ...
- Java从入门到精通——基础篇之Servlet与JSP的区别
一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...
- DRP中用到的JavaScript验证
在Drp中添加按钮的时候要验证用户输入的是否合法利用JavaScript就可以实现这个功能下面就是我的代码. <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- ORA-00845
系统版本: [root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 数据库版本: Oracle Database ...