没有从Rotativa PartialViewAsPdf调用mvc动作

时间:2015-03-25 23:28:02

标签: asp.net-mvc partial-views wkhtmltopdf rotativa

我正在使用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属性。

1 个答案:

答案 0 :(得分:1)

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

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

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

和DrawChart()动作保持不变。