在浏览器的新选项卡中打开doc文件或PDf文件

时间:2014-02-05 10:15:52

标签: c# .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我必须在点击锚标记的新标签页中打开doc文件或pdf文件。我正在使用MVc 4.0。 浏览器尝试在新选项卡中打开文件但在此之前打开下载屏幕/弹出窗口并限制文件在新选项卡中打开。我已经检查了互联网和stackoverflow的答案,我写的是做target = _blank但它是不适合我。

我已经定义了我的锚链接如下。我有文件名,这将是唯一的,因为我使用datetime.now.tofiletime()创建文件名。所以,我直接给了我的文件名。但是我首先要检测文件是文件文件还是PDF文件还是图像也可以。下面的代码服务器也可以这个用途吗?请指导:

<a href="/MyController/ViewDocument?FileName=145357456705009879.docx" target="_blank" title="View Document" style="display:block;" class="ViewDetailClass"> </a>

然后我在MyController类中有下面的Action方法。

 public ActionResult ViewDocument(string FileName)
    {
        try
        {
            var FullPath = Path.Combine(Server.MapPath("~/Content/Resources"), FileName);
            if (!System.IO.File.Exists(FullPath))
            {
                return HttpNotFound();
            }
            var contentType = "text/plain";
            return File(FullPath, contentType, Path.GetFileName(FullPath));
        }
        catch
        {
        }
        return File(new byte[] { }, "text/plain");
    }

1 个答案:

答案 0 :(得分:1)

这取决于客户端的设置。几乎总是下载docx文件,因为它无法在浏览器中显示。对于PDF文件,它取决于。在chrome中,它在浏览器中打开标准,但你可以告诉它不要这样做并在另一个应用程序中打开它。

这些是客户端的设置,您无法从服务器控制这些设置。哪个是好的,因为如果这是用户的偏好,那将感觉正常。