【发布时间】:2019-09-10 16:46:44
【问题描述】:
我有两个控制器,1 个是 api 控制器,另一个是视图控制器,我要做的是从 api 控制器从视图控制器中的视图生成 PDF...这可能吗以及如何我会这样做吗?
API 控制器 - 这是我要生成 PDF 的地方
public byte[] getReportsPDF(string community, string procedure)
{
byte[] pdfBytes = new byte[] { };
System.Web.Mvc.ControllerContext context = new System.Web.Mvc.ControllerContext();
if(procedure == "GetProductionTasks")
{
var actionPDF = new Rotativa.ActionAsPdf("RedBluePDF", new { community = community, procedure = procedure })
{
PageSize = Size.A4,
PageOrientation = Rotativa.Options.Orientation.Landscape,
PageMargins = { Left = 1, Right = 1 }
};
pdfBytes = actionPDF.BuildFile(context);
}
return pdfBytes;
}
View Controller - 这是我要生成的视图。
public ActionResult RedBluePDF(string community, string procedure)
{
return View();
}
【问题讨论】:
-
理想情况下,您不应从视图控制器调用 API 控制器。您可以做的是有一个单独的 PDF 生成类并调用从视图和 API 控制器生成的 PDF。检查this link
-
嘿,我正在尝试从 API 控制器调用视图控制器
-
如果隔离 GeneratePDF 方法,则可以从 api 调用它。
标签: c# asp.net asp.net-mvc rotativa