.net MVC 4将pdf返回给浏览器

时间:2015-02-03 15:49:12

标签: c# .net asp.net-mvc pdf

查看

@Html.ActionLink("Förköpsinformation", "GetForkopsInfo", "RaknaTeckna", null, new { target = "_blank" })

GetForkopsInfo()执行actionlink操作,tm.PreSalesDocument是以字节为单位的pdf对象

  [HttpPost]
   public ActionResult GetForkopsInfo()
    {

            tm = (TecknaMotor)Session["WinsureTecknaMotor"];
            tm.GetPreSalesDocument();


                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.ContentType = "Application/pdf";
                Response.AddHeader("content-length", tm.PreSalesDocument.Length.ToString());
                Response.AddHeader("Content-Disposition", "inline; filename = förköpsinfo.pdf");
                Response.BinaryWrite(tm.PreSalesDocument);
                return File(tm.PreSalesDocument, "Application/pdf", "förköpsinfo.pdf");

    }`

我希望控制器将pdf返回到Web浏览器并打开一个新选项卡。 但它根本不起作用,我甚至不确定使用actionlink是否正确?不知道该怎么做......

1 个答案:

答案 0 :(得分:1)

您正在使用一个开箱即用的Actionlink来访问HttpPost ActionResult。我建议您将请求更改为HTTPGet并查看HttpResponse.TransmitFile

Response.ContentType = "Application/pdf";
Response.TransmitFile(pathtofile);

然后返回Response而不是File Obj。

或者,您可以更改为HTTPGet,并且我非常确定更改您的浏览器以在浏览器窗口中打开PDF。