Rotativa не может найти путь просмотра, используя области - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь создать PDF в ASP. NET Ядро с использованием Rotativa (1.2.0-бета), оно хорошо работает, когда я не использую Areas, но мне нужно создать модульное приложение.

enter image description here

Сначала я попытался использовать только имя представления, но это возвращает ошибку:

ArgumentNullException: значение не может быть нулевым. Имя параметра: путь1

public IActionResult Detalles(int? Id, int Anio)
    {
        var cuentas = db.PartidaDiario.Where(c => c.AnioFiscal == Anio && c.Id == Id).Include(c => c.CuentasPartida).ToList();

        string cusomtSwitches = string.Format("--header-font-size 7 " +
            "--print-media-type ");

        ViewDataDictionary viewdata = null;

        try
        {
            viewdata = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary()) {
            { "NombreEmpresa", db.Aplicacion.FirstOrDefault().NombreEmpresa },
            { "FirmaReporte1_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte1Titulo },
            { "FirmaReporte2_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte2Titulo },
            { "FirmaReporte3_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte3Titulo },
            { "FirmaReporte1_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte1Nombre },
            { "FirmaReporte2_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte2Nombre },
            { "FirmaReporte3_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte3Nombre },
            { "MostrarFirmas", db.FirmasReportes.FirstOrDefault().Imprimir }
            };
        }
        catch (NullReferenceException) { }

        return new ViewAsPdf("Detalles", cuentas, viewdata)
        {
            FileName = "PARTIDAS-" + Anio + ".pdf",
            CustomSwitches = cusomtSwitches
        };
    }

Во-вторых, я попытался с полным путем просмотра, но это выдает ошибку:

Невозможно найти представление '~ \ Areas \ Contabilidad \ Views \ LibroDiario \ Detalles.cs html». Были найдены следующие местоположения: ~ \ Areas \ Contabilidad \ Views \ LibroDiario \ Detalles.cs html

public IActionResult Detalles(int? Id, int Anio)
    {
        var cuentas = db.PartidaDiario.Where(c => c.AnioFiscal == Anio && c.Id == Id).Include(c => c.CuentasPartida).ToList();

        string cusomtSwitches = string.Format("--header-font-size 7 " +
            "--print-media-type ");

        ViewDataDictionary viewdata = null;

        try
        {
            viewdata = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary()) {
            { "NombreEmpresa", db.Aplicacion.FirstOrDefault().NombreEmpresa },
            { "FirmaReporte1_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte1Titulo },
            { "FirmaReporte2_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte2Titulo },
            { "FirmaReporte3_Titulo", db.FirmasReportes.FirstOrDefault().FirmaReporte3Titulo },
            { "FirmaReporte1_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte1Nombre },
            { "FirmaReporte2_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte2Nombre },
            { "FirmaReporte3_Nombre", db.FirmasReportes.FirstOrDefault().FirmaReporte3Nombre },
            { "MostrarFirmas", db.FirmasReportes.FirstOrDefault().Imprimir }
            };
        }
        catch (NullReferenceException) { }

        return new ViewAsPdf(@"~\Areas\Contabilidad\Views\LibroDiario\Detalles.cshtml", cuentas, viewdata)
        {
            FileName = "PARTIDAS-" + Anio + ".pdf",
            CustomSwitches = cusomtSwitches
        };
    }
...