首页 > 解决方案 > 带有 rotativa 和空布局的图像标题

问题描述

我最近开始使用 Rotativa,这太棒了,但是今天,我尝试在我的 pdf 中添加一个标题,它可以正常工作,但是_layout.cshtml当我尝试使用Layout = null或渲染标题来删除它PartialView而不是View它只是显示一个空白页面。

这就是我的工作方式

public ActionResult Print(string CodigoDelfos, int Revision, string Versiones)
{
    //Create the url for the header (Test action)
    UriBuilder u = new UriBuilder(Request.Url.AbsoluteUri)
    {
        Path = Url.Action("Test", "Home", null),
        Query = null
    };

    //Format the header to read Test.cshtml file
    string t = string.Format("--header-html {0}", u.Uri.ToString());

    //The action i'll use to create the pdf        
    return new Rotativa.ActionAsPdf(nameof(ImprimirDetalleDistribucion), new
    {
        CodigoDelfos,
        Revision,
        Versiones
    })
    {
        CustomSwitches = t
    };
}

然后Test.cshtml文件

<div class="container">
    <img src="~/Content/Images/CabeceraGarantizados.jpg" class="img-fluid" />
</div>

View()如果我将它渲染为(使用默认布局渲染),它在这里工作正常,但如果我这样做,因为PartialView()pdf 结果blank与我使用的方式相同Layout = null

为什么会发生这种情况?

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

解决方案


显然 Rotary 需要文件具有DOCTYPE定义的

解决方案只是添加DOCTYPE

测试.cshtml

@{ Layout = null; }
<!DOCTYPE html>
<div class="container">
    <img src="~/Content/Images/CabeceraGarantizados.jpg" class="img-fluid" />
</div>    

推荐阅读