我在Windows 8中运行VS 2012(在mac os x中托管的虚拟机上)。 C#中的MVC 3。
当用户选择文档时,它应该在新的浏览器窗口中打开。
目前: Chrome(v24.0.1312.56 m) - 根据需要在新窗口中打开 Firefox(v18.0.1) - 提示用户打开或保存。打开TWinUI(ugh)(和下载) 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没有通过下载提示继续存在。
答案 0 :(得分:0)
将return File
更改为return Redirect
。 return File
表示在浏览器中刷新文件并结束响应。