在使用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失败的解决办法的更多相关文章

  1. 使用asp.net MVC4中的Bundle遇到的问题及解决办法

    背景 之前有过使用MVC3的经验,也建过MVC4的基本样例看过,知道有bundle这么一个方法. 近日想建个网站使用MVC4,但是我觉得在基本样例上改不好,有太多无用的东西,所以就建了一个空白的MVC ...

  2. 解决IE8下不兼容rgba()的解决办法

    rgba()是css3的新属性,所以IE8及以下浏览器不兼容,这怎么办呢?终于我找到了解决办法. 解决办法 我们先来解释以下rgba rgba: rgba的含义,r代表red,g代表green,b代表 ...

  3. centos下httpd 启动失败的解决办法

    [root@csit yang]# service httpd start Starting httpd:                                            [FA ...

  4. 在Windows 7 64位下注册ActiveX失败的解决办法

    copy Chart10W.dll  %SystemRoot%\SysWOW64\ copy cellweb5.inf  %SystemRoot%\SysWOW64\ copy hado.dll %S ...

  5. linux下执行脚本失败的解决办法

    现象: 1的解决办法:赋予该文件可执行权限即可,chmod +x docker.sh 2的解决办法:https://blog.csdn.net/youzhouliu/article/details/7 ...

  6. ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)

    转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

  7. ASP.Net MVC中数据库数据导出Excel,供HTTP下载

    本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...

  8. IE8下导入EXCEL数据传到客户端以附件下载

    IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...

  9. 转:ASP.NET MVC 将IList<T>导出Excel文档的泛型类

    /// <summary> /// 提供将泛型集合数据导出Excel文档. /// </summary> /// <typeparam name="T" ...

随机推荐

  1. 【leetcode】367. Valid Perfect Square

    题目描述: Given a positive integer num, write a function which returns True if num is a perfect square e ...

  2. Ajax乱码问题

    Ajax中文乱码问题   1.js代码 var userName=$("#userName").val(); var url = "user/login.action?u ...

  3. gcc与g++的区别

    一:gcc与g++比较 编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而 c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确, ...

  4. English Learning

    EnglishPod 百度云盘:http://pan.baidu.com/s/1eQUJquA

  5. 过滤字段中HTML标签

    代码中只是过滤了一部分标签,例如span这些还是没有过滤,如果有更好办法的,可以帮忙补充 create FUNCTION [dbo].[CleanHTML] (@HTMLText VARCHAR(MA ...

  6. EasyUI_Datagrid学习总结

    EasyUI_Datagrid学习总结 2016年7月25日星期一 一.简介 Easyui中的datagrid从总的作用上讲,就是在列表上显示数据,类似于table,但是在table的基础上,此控件更 ...

  7. 基础学习总结(四)--SQLite

    1. SQLiteDatabase   操作SQLite数据库的类.可以执行SQL语句,对数据库进行增.删.查.改的操作.也可以进行transaction的控制.很多类对数据库的操作最终都是通过SQL ...

  8. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  9. DRP中用到的JavaScript验证

    在Drp中添加按钮的时候要验证用户输入的是否合法利用JavaScript就可以实现这个功能下面就是我的代码. <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...

  10. ORA-00845

    系统版本: [root@yoon ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 数据库版本: Oracle Database ...