图像 header 具有 rotativa 和 null 布局

Image header with rotativa and null layout

我最近开始使用 Rotativa,它很棒,但是今天,我尝试在我的 pdf 中添加一个 header,它没有问题,但是 header 是使用 _layout.cshtml,当我尝试使用 Layout = null 删除它或将 header 呈现为 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

为什么会这样?

显然 Rotary 需要文件定义 DOCTYPE

解决方法就是添加DOCTYPE

Test.cshtml

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