0

我在 Windows 8 中运行 VS 2012(在 mac os x 中托管的虚拟机上)。C# 中的 MVC 3。

当用户选择一个文档时,它应该在一个新的浏览器窗口中打开。

当前:Chrome (v24.0.1312.56 m) - 根据需要在新窗口中打开
Firefox (v18.0.1) - 提示用户打开或保存。在 TWinUI 中打开(呃)(和下载)。
IE (v10.0.9200.16466) - 提示用户打开或保存。在 TWinUI 中打开

这是代码:

    [HttpGet]
    public ActionResult Details(int id)
    {
        Document document = portalDB.Documents.Find(id);
        Response.Headers.Remove("Content-Disposition");
        Response.Headers.Add("Content-Disposition", "inline; filename=" + document.FileName);
        return File(System.IO.Path.Combine(Server.MapPath("~/App_Data/Documents"), document.FileName), "application/pdf");
    }

这是 IE 响应标头:

Key                     Value
Response                HTTP/1.1 200 OK
Cache-Control           private, s-maxage=0
Content-Type            application/pdf
Server                  Microsoft-IIS/8.0
X-AspNetMvc-Version     3.0
Content-Disposition     inline; filename=DeclarationAndByLaws.pdf
X-AspNet-Version        4.0.30319
X-SourceFiles           =?UTF-8?B?YzpcdXNlcnNcbWlrb1xkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXENlZGFyQXBwbGljYXRpb25cQ2VkYXJBcHBsaWNhdGlvblxQb3J0YWxcRGV0YWlsc1wx?=
X-Powered-By            ASP.NET
Date                    Mon, 28 Jan 2013 22:01:52 GMT

Firefox:无法获取标题,因为 firebug 没有通过下载提示持续存在。

4

1 回答 1

-1

更改return Filereturn Redirect. return File表示在浏览器中刷新文件并结束响应。

于 2013-01-29T06:17:14.650 回答