-
- @* Hinweis:
- - Diese Seite zeigt aktuell das PDF per einfachem iframe (funktioniert zuverlässig).
- - Nächster Commit: wir ersetzen iframe durch DevExpress WebDocumentViewer oder laden diesen zusätzlich.
- - Der Link "DevExpress Viewer (experimental)" ist ein Platzhalter; wir implementieren die Route /Invoices/DocumentViewerDevExpress in einem der nächsten Schritte.
- *@
-
\ No newline at end of file
diff --git a/DXApp.TemplateKitProject/Pages/Invoices/DocumentViewer.cshtml.cs b/DXApp.TemplateKitProject/Pages/Invoices/DocumentViewer.cshtml.cs
deleted file mode 100644
index 021c7fc..0000000
--- a/DXApp.TemplateKitProject/Pages/Invoices/DocumentViewer.cshtml.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-
-namespace DXApp.TemplateKitProject.Pages.Invoices;
-
-public class DocumentViewerModel : PageModel
-{
- [BindProperty(SupportsGet = true)]
- public int Id { get; set; }
-
- public string PdfUrl => $"/Invoices/ViewPdf?id={Id}";
-
- public void OnGet()
- {
- // Keine serverseitige Logik nötig für die erste Version.
- }
-}
\ No newline at end of file
diff --git a/DXApp.TemplateKitProject/Pages/Invoices/ViewPdf.cshtml.cs b/DXApp.TemplateKitProject/Pages/Invoices/ViewPdf.cshtml.cs
index 83d5017..a13f182 100644
--- a/DXApp.TemplateKitProject/Pages/Invoices/ViewPdf.cshtml.cs
+++ b/DXApp.TemplateKitProject/Pages/Invoices/ViewPdf.cshtml.cs
@@ -18,6 +18,7 @@ public class ViewPdfModel : PageModel
public async Task OnGetAsync(int id)
{
+ // Sicherheit: defensive checks, gleiche Logik wie CustomReportStorageWebExtension
var invoice = await _db.ZugferdInvoices
.AsNoTracking()
.FirstOrDefaultAsync(i => i.Id == id);
@@ -34,10 +35,6 @@ public class ViewPdfModel : PageModel
var bytes = await System.IO.File.ReadAllBytesAsync(invoice.ResultFilePath);
_logger.LogInformation("ViewPdf: Invoice {Id} ausgeliefert ({Size} Bytes).", id, bytes.Length);
- // Wichtig: keine "attachment" Content-Disposition setzen
- // wir setzen inline (oder lassen es weg) damit Browser im Viewer darstellt
- Response.Headers["Content-Disposition"] = $"inline; filename=\"{Path.GetFileName(invoice.ResultFilePath)}\"";
-
- return File(bytes, "application/pdf");
+ return File(bytes, "application/pdf", $"{Path.GetFileName(invoice.ResultFilePath)}");
}
}
\ No newline at end of file