【问题标题】:ASP.NET MVC 3 File download: Not Working in IE8ASP.NET MVC 3 文件下载:在 IE8 中不工作
【发布时间】:2013-05-26 14:41:23
【问题描述】:

我的下载只是提供来自本地文件系统的静态 zip 文件,该文件在 Chrome 和 Firefox 中有效,但在 IE8 中无效。

该网站使用 SSL 在 localhost 上运行,但我在 IE 中收到以下错误消息。

无法从 localhost 下载 Download/。

无法打开此 Internet 站点。请求的站点是 不可用或找不到。请稍后再试。

public ActionResult Download(long batchID)
{
    var batchFilePath = string.Format(BatchOrderReportsFolder + "\\Batch-{0}\\Batch-{0}.zip", batchID);
    if (!System.IO.File.Exists(batchFilePath)) {
        return RedirectToAction("Index", "Error");
    }

    return File(batchFilePath, "application/zip", Path.GetFileName(batchFilePath));
}

【问题讨论】:

  • 您是否尝试过FileResult 而不是ActionResult(不确定这是否仅适用于MVC4)?
  • 我删除了 if 块并将返回类型设置为 FileResult,但我得到了同样的错误。

标签: asp.net-mvc internet-explorer-8 download fileresult


【解决方案1】:

以下问题中的信息应该对您有所帮助...

Struts application - unable to download file through https on IE

【讨论】:

    【解决方案2】:

    这就是最终对我有用的方法。在我的例子中,OnActionExecuted 上有一个全局 ActionFilter 将缓存控制设置为“无缓存”。

    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";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      相关资源
      最近更新 更多