【发布时间】:2014-03-01 17:03:45
【问题描述】:
单击锚标记时,我必须在新选项卡中打开 doc 文件或 pdf 文件。我正在使用 MVc 4.0。 浏览器尝试在新选项卡中打开一个文件,但在此之前会打开一个下载屏幕/弹出窗口并限制文件在新选项卡中打开。我已经检查了互联网和 stackoverflow 的答案,我被写来做目标 =_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");
}
【问题讨论】:
标签: c# .net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4