【问题标题】:RotaTiva not working in asp.net mvc 5RotaTiva 在 asp.net mvc 5 中不工作
【发布时间】:2018-05-16 04:25:22
【问题描述】:

我的应用程序在 .net 框架版本 4.5.2 上的 asp.net mvc 5 中

我正在使用 Rotavita 转换 pdf 中的视图

我尝试从 nugget 添加 Giorgio Bozio 的 Rotavita 包

它会在我的项目中使用 exe 文件安装并添加名为 RotaVita 的新文件夹

但我无法在控制器中使用它,因为它在那里不可用

经过一番谷歌搜索后,我发现了一篇建议使用 Dmitry Pronin 的 Rotavita.MVC 的帖子。它可以毫无问题地安装,现在我可以通过包含

在控制器中使用它
using Rotativa.MVC;

在行动方法

return new ViewAsPdf("Index", Model) { FileName="rpt.pdf"};

它确实返回一个 PDF 文件,但它不包含任何内容,一个空白的 pdf 文件

我在 asp.net core 2.0 中使用 RotaVita,它可以完美运行,但在 asp.net mvc 5 中却没有

我怎样才能让它在这里工作?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-5 rotativa


    【解决方案1】:

    您只需要在 main(index) cshtml 中添加一个 ActionLink

    @Html.ActionLink("Convert View To PDF", "PrintViewToPdf")
    

    在控制器中

    public ActionResult PrintViewToPdf()
    {    
        var report = new ActionAsPdf("Index or Partial View Name");
        return report;    
    }
    

    请参阅此链接了解更多详细信息,并尝试使用“Rotativa.MVC”
    https://www.c-sharpcorner.com/article/asp-net-mvc-export-pdf-document-from-view-page/

    【讨论】:

    • 你能让它工作吗? (return new ActionAsPdf("Index", Model) 如果您已经从“Index”返回模型,则不需要将模型传递给那里
    • 它在新项目中工作,但不是在那个项目中,我猜是其他一些包创建问题,我正在使用 return new ViewAsPdf (),抱歉打错了
    【解决方案2】:

    您的代码中有错字。您需要将其更改为“Rotativa”,而不是“Rotavita”。

    【讨论】: