查看
@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是否正确?不知道该怎么做......
答案 0 :(得分:1)
您正在使用一个开箱即用的Actionlink来访问HttpPost ActionResult。我建议您将请求更改为HTTPGet并查看HttpResponse.TransmitFile
Response.ContentType = "Application/pdf";
Response.TransmitFile(pathtofile);
然后返回Response而不是File Obj。
或者,您可以更改为HTTPGet,并且我非常确定更改您的浏览器以在浏览器窗口中打开PDF。