[asp.net-mvc]在渲染 MVC Fileresult 嵌入标记不是物理的 Url

发布时间: 2016/10/5 11:19:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个 MVC 方法返回 fileresult (返回 PDF 文件),我需要在 src 标记中使用相同的 url,并显示在浏览器中。

例如我的示例代码是如下︰

public FileResult GetAttachment()
{
    return File(@"c:\sample.pdf", "application/pdf", "sample.pdf");
}

<embed src="/Home/GetAttachment" width="100%" height="1150" type="application/pdf"></embed>

我给 actionname 中嵌入标记的 src,不是有一项工作大约获得 sample.pdf (文件结果) 和与在浏览器中的呈现。

解决方法 1:

试着返回FileStreamResult:

public ActionResult GetAttachment()
{
    var fileStream = new FileStream(Server.MapPath("~/Content/files/sample.pdf"), 
                                     FileMode.Open,
                                     FileAccess.Read
                                   );
    var fsResult = new FileStreamResult(fileStream, "application/pdf");
    return fsResult;
}

里面的视图︰

<embed src="@Url.Action("GetAttachment", "Home")" width="100%" height="1150" type="application/pdf"></embed>
赞助商