在 MVC ASP.NET 新页面中流式传输 Html 文档



我有一个描述文件的对象文档:该文件是HTML格式的文件。

public class FileObj
{
    public string FileName;
    public string MimeType;
    public Stream File;
}

这是我的控制器操作

[HttpGet]
public ActionResult Open(Guid fileId)
{
    var document = repository.GetFile(fileId);
    return File(document.File, document.MimeType, document.FileName);
}

在视图中有一个简单的链接,如下所示:

<a href="/Documents/Open?fileId=1" target="blank" title="Click to download">open file</a>

每次我单击链接时,都会下载文件。我希望浏览器在新窗口中打开它。

我该怎么做?我在 MVC3 ASP.NET 工作

您需要

指定一个Content-Disposition标头:

Response.AppendHeader("Content-Disposition", "inline; filename=" + document.FileName);
return File(document.File, document.MimeType);

另外,我认为您正在寻找target="_blank".属性target="blank"将在内部命名为"空白"的窗口/选项卡中打开,任何进一步的单击都将重新加载该窗口/选项卡,而不是每次都弹出一个新窗口/选项卡。

最新更新