C# 使用asp.net中的rotativa在一个视图中使用多个局部视图生成pdf
我正在尝试使用asp.net中的rotativa生成pdf。“我的视图”在其上渲染了多个局部视图。我可以创建单个局部视图的pdf,但当我合并所有局部视图并尝试生成pdf时。它在将数据加载到pdf之前生成pdf。请建议如何在pdf中加载数据之前保持该过程。 提前谢谢C# 使用asp.net中的rotativa在一个视图中使用多个局部视图生成pdf,c#,asp.net-mvc,asp.net-mvc-4,pdf,rotativa,C#,Asp.net Mvc,Asp.net Mvc 4,Pdf,Rotativa,我正在尝试使用asp.net中的rotativa生成pdf。“我的视图”在其上渲染了多个局部视图。我可以创建单个局部视图的pdf,但当我合并所有局部视图并尝试生成pdf时。它在将数据加载到pdf之前生成pdf。请建议如何在pdf中加载数据之前保持该过程。 提前谢谢 public ActionResult Followers() { MediaAPIController mac = new MediaAPIController(); JsonResu
public ActionResult Followers()
{
MediaAPIController mac = new MediaAPIController();
JsonResult jR = mac.getUserInfo("", "", "", "201");
MediaLibrary.User u = (MediaLibrary.User)jR.Data;
System.Threading.Tasks.Task.Run(async delegate
{
await Task.Delay(5000);
return 42;
}).Wait();
return new Rotativa.ActionAsPdf("PreviewPdf", u)
{
FileName = "MyDoc.pdf",
PageSize = Rotativa.Options.Size.A4,
PageOrientation = Rotativa.Options.Orientation.Portrait,
PageMargins = { Left = 10, Right = 10 }
};
}
您可以使用ViewAsPdf方法代替ActionAsPdf并传递在局部视图中绑定的模型。这样,视图将在渲染前绑定,问题将得到解决 您可以使用ViewAsPdf方法而不是ActionAsPdf并传递在局部视图中绑定的模型。这样,视图将在渲染前绑定,问题将得到解决 谢谢Manprit Singh,但是在pdf上打印数据花费了太多时间。目前,我正在使用return new Rotativa.ViewAsPdf(“\u Activity”,u{FileName=“MyDoc.pdf”,CustomSwitches=“DateTime.Now.Date.ToString”(“MM/dd/yyyy”)+“Page:[Page]/[toPage]\”--启用javascript--调试javascript--无背景”+“--javascript延迟1500000--图像--打印媒体类型--启用表单”+“--方向\“纵向\”-左边距\“10\”--右边距\“10\”--页面大小\“A4\”}”;但它仍然只打印几行数据,而不是pdf中的完整数据。是否有任何方法可以改进执行过程。?您可以发布任何示例项目,以便我可以查看代码并解决问题吗?谢谢Manprit Singh,但在pdf上打印数据要花很多时间。目前,我正在使用return new Rotativa.ViewAsPdf(“_活动“,”,u){FileName=“MyDoc.pdf”,CustomSwitches=“DateTime.Now.Date.ToString(“MM/dd/yyyy”)+“Page:[Page]/[toPage]\”--启用javascript--调试javascript--无背景“+”--javascript延迟1500000--图像--打印媒体类型--启用表单“+”--方向\“纵向\”-左边距\“10\”--右边距\“10\”--页面大小\“A4\”};但它仍然只打印了几行数据,而不是pdf中的完整数据。是否有任何方法可以改进执行过程。?您可以发布任何示例项目,以便我可以查看代码并解决问题吗?您应该将getUserInfo函数移到服务中,而不是与控制器一起使用。您应该将getUserInfo函数移到int中o服务,而不是与控制器一起聚集。