未从 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() 操作保持不变。
我正在使用 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() 操作保持不变。