Я пытаюсь создать PDF в ASP. NET Ядро с использованием Rotativa (1.2.0-бета), оно хорошо работает, когда я не использую Areas, но мне нужно создать модульное приложение.
Сначала я попытался использовать только имя представления, но это возвращает ошибку:
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
};
}