未从 Rotativa PartialViewAsPdf 调用 mvc 操作

mvc action not being called from Rotativa PartialViewAsPdf

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

这是解决该问题的解决方法。添加一个新的 Action 是有代价的! (OverallResultPrintVersion) 和在 OverallResultPdf 操作中,需要返回 ActionAsPdf 而不是返回 PartialViewAsPdf。

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

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

DrawChart() 操作保持不变。