ASP.NET MVC 3文件下载:在IE8中不起作用

时间:2013-05-30 21:19:26

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

我的下载只是提供来自本地文件系统的静态zip文件,该文件系统适用于Chrome和Firefox,但不适用于IE8。

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

  

无法下载/从localhost下载。

     

无法打开此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));
}

2 个答案:

答案 0 :(得分:2)

这是最终对我有用的东西。就我而言,OnActionExecuted上有一个全局ActionFilter,它将缓存控制设置为“no-cache”。

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

答案 1 :(得分:1)

以下问题中的信息可以帮助您......

Struts application - unable to download file through https on IE