Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用asp.net中的rotativa在一个视图中使用多个局部视图生成pdf_C#_Asp.net Mvc_Asp.net Mvc 4_Pdf_Rotativa - Fatal编程技术网

C# 使用asp.net中的rotativa在一个视图中使用多个局部视图生成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

我正在尝试使用asp.net中的rotativa生成pdf。“我的视图”在其上渲染了多个局部视图。我可以创建单个局部视图的pdf,但当我合并所有局部视图并尝试生成pdf时。它在将数据加载到pdf之前生成pdf。请建议如何在pdf中加载数据之前保持该过程。 提前谢谢

    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服务,而不是与控制器一起聚集。