MVC在弹出窗口中打开PDF

时间:2013-02-25 09:47:22

标签: asp.net-mvc-4

在我的应用程序中,我的解决方案中有一个pdf文档,当用户单击某个特定按钮时,必须在弹出窗口中打开文档。我可以通过返回文件流对象在同一窗口中打开它。我使用的代码。

public ActionResult ShowPdf()
    {
        if (System.IO.File.Exists(Server.MapPath("~/downloads/MyPdf.pdf")))
        {
            string pathSource = Server.MapPath("~/downloads/MyPdf.pdf");
            FileStream fsSource = new FileStream(pathSource, FileMode.Open, FileAccess.Read);

            return new FileStreamResult(fsSource, "application/pdf");
        }
        else
        {
          return RedirectToAction("Index", "User");
        }
    }

如何在弹出窗口中加载

提前致谢

1 个答案:

答案 0 :(得分:3)

这取决于您如何从客户端调用此控制器操作。例如,如果您有链接,则可以将target="_blank"属性添加到此锚点。例如:

@Html.ActionLink(
    "Download pdf",
    "ShowPdf",
    "SomeController",
    null,
    new { target = "_blank" }
)

或者,如果您使用javascript来调用控制器操作,则可以使用window.open函数。