0

我正在使用 Rotativa(1.6.3 版)从我的角度生成 pdf。我有一个简单的局部视图(_OverallResultPrintVersion.cshtml):

 @Styles.Render("~/bundles/css")

 <img src="@Url.Action("DrawChart", "Vote", new {area = "Award"})"/>

在我返回 Rotativa PartialViewAsPdf 时的操作中,它会打开一个空的 pdf 页面,并且不会按预期调用“DrawChart”操作。以下是我在投票控制器中实现我的操作的方式:

public ActionResult OverallResultPdf()
{
    return new Rotativa.PartialViewAsPdf(
    @"~\Areas\Award\Views\Shared\Widget\_OverallResultPrintVersion.cshtml");
}

public ActionResult DrawChart()
{
     var model = getModel();
     return PartialView("Widget/_VotesColumnChart", model);
}

将部分视图中的图像源替换为 URL 时,它会显示图像,但这不是我想要实现的。知道为什么 Rotativa PartialViewAsPdf 不能从局部视图调用我的操作吗?

PS:这些操作没有授权限制,所以我在创建 PartialViewAsPdf 时不需要启动 FormsAuthenticationCookieName 属性。

4

1 回答 1

1

这是解决问题的解决方法。添加新动作需要花费!(OverallResultPrintVersion) 并且在OverallResultPdf 操作中,需要返回ActionAsPdf,而不是返回PartialViewAsPdf。

public ActionResult OverallResultPdf()
{
    return new Rotativa.ActionAsPdf("OverallResultPrintVersion");
}

public ActionResult OverallResultPrintVersion()
{
    return PartialView("Widget/_OverallResultPrintVersion");
}

并且 DrawChart() 动作保持不变。

于 2015-03-26T03:49:33.160 回答