Wie man Razor Pages in PDFs in einer ASP.NET Core Web App konvertiert

Konvertieren von Razor Pages in PDFs in ASP.NET Core C#35; App

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF ermöglicht die nahtlose Konvertierung von Razor Pages (.cshtml-Dateien) in PDF-Dokumente in ASP.NET Core-Anwendungen mithilfe der RenderRazorToPdf-Methode und vereinfacht so die PDF-Erzeugung aus Webinhalten mit vollständiger Unterstützung für C#- und HTML-Rendering.

Eine Razor Page ist eine Datei mit der Erweiterung .cshtml, die C# und HTML kombiniert, um Webinhalte zu erzeugen. In ASP.NET Core sind Razor Pages eine einfachere Möglichkeit, den Code für Webanwendungen zu organisieren, was sie ideal für einfache Seiten macht, die nur gelesen werden oder einfache Dateneingaben vornehmen.

Eine ASP.NET Core Web App ist eine Webanwendung, die mit ASP.NET Core, einem plattformübergreifenden Framework zur Entwicklung moderner Webanwendungen, erstellt wird.

IronPDF vereinfacht den Prozess der Erstellung von PDF-Dateien aus Razor Pages innerhalb eines ASP.NET Core Web App-Projekts. So wird die PDF-Erstellung in ASP.NET Core Web Apps zum Kinderspiel.

Schneller Einstieg: Razor Pages in Sekundenschnelle in PDF umwandeln

Konvertieren Sie Ihre Razor Pages in einer ASP.NET Core-Anwendung in hochwertige PDFs. Mit der Methode RenderRazorToPdf können Sie CSHTML-Dateien in PDF-Dokumente umwandeln und so Ihren Arbeitsablauf optimieren und die Verteilung von Dokumenten verbessern. Dieser Leitfaden führt Sie durch die einfachen Schritte, die Sie benötigen, um dies in wenigen Minuten zu erreichen.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPDF mit dem NuGet-Paketmanager.

    PM > Install-Package IronPdf

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    // Installationspaket IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPDF in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Einführung

Razor Pages bieten eine leistungsstarke und intuitive Möglichkeit, dynamische Webinhalte in ASP.NET Core-Anwendungen zu erstellen. In Kombination mit den Rendering-Funktionen von IronPDF können Entwickler professionelle PDF-Dokumente direkt aus ihren Webinhalten erstellen. Bei diesem Ansatz entfällt die komplexe PDF-Generierungslogik, und Sie können Ihre vorhandenen HTML- und CSS-Kenntnisse nutzen.

Die Integration von IronPDF und Razor Pages ist besonders wertvoll für die Erstellung von Berichten, Rechnungen, Zertifikaten und allen anderen Dokumenten, die eine dynamische Datendarstellung erfordern. Durch die Verwendung derselben Razor-Syntax, mit der Sie bereits vertraut sind, können Sie die Konsistenz zwischen Ihren Webansichten und PDF-Ausgaben wahren.

Welche NuGet-Pakete benötige ich für die Konvertierung von Razor in PDF?

Das IronPdf.Extensions.Razor Paket ist eine Erweiterung des Hauptpakets IronPdf. Die beiden Pakete IronPdf.Extensions.Razor und IronPdf werden benötigt, um Razor Pages in einer ASP.NET Core Web App in PDF-Dokumente umzuwandeln. Detaillierte Installationsanweisungen finden Sie in unserer Installationsübersicht.

# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installationspaket IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installationspaket IronPdf.Extensions.Razor
SHELL
C# NuGet-Bibliothek für PDF

Installation mit NuGet

Installationspaket IronPdf.Extensions.Razor

Wie konvertiere ich Razor Pages in ASP.NET Core in PDFs?

Sie benötigen ein ASP.NET Core Web App-Projekt, um Razor Pages in PDF-Dateien zu konvertieren. Der Prozess umfasst die Erstellung eines Modells für Ihre Daten, die Einrichtung einer Razor-Seite zur Anzeige dieser Daten und die Verwendung der Methode RenderRazorToPdf von IronPDF zur Erzeugung der PDF-Ausgabe.

Warum brauche ich eine Modellklasse für die PDF-Generierung?

Modellklassen dienen als Rückgrat der Datendarstellung in Ihren Razor Pages. Sie bieten eine strukturierte Möglichkeit, Daten von der Controller-Logik an die Ansicht zu übergeben und gewährleisten Typsicherheit und Wartbarkeit. Bei der Erstellung von PDFs sind diese Modelle sogar noch wichtiger, da sie die genaue Struktur der Daten definieren, die in Ihrem endgültigen Dokument erscheinen werden.

  • Erstellen Sie einen neuen Ordner im Projekt und nennen Sie ihn "Models".
  • Fügen Sie eine Standard-C#-Klasse in den Ordner ein und nennen Sie sie "Person". Diese Klasse dient als Modell für individuelle Daten. Verwenden Sie den folgenden Codeausschnitt:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
$vbLabelText   $csharpLabel

Wie richte ich eine Razor-Seite für die PDF-Konvertierung ein?

Fügen Sie eine leere Razor Page in den Ordner "Pages" ein und nennen Sie sie "persons.cshtml".

  • Ändern Sie die neu erstellte Datei "Persons.cshtml" anhand des unten angegebenen Codebeispiels.

Der folgende Code zeigt die Informationen im Browser an. Beachten Sie, dass die Razor-Syntax eine nahtlose Integration von C#-Code in HTML ermöglicht und sich damit perfekt für die Erstellung dynamischer Inhalte eignet, die in PDF konvertiert werden können:

@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in ViewData["personList"] as List<Person>)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<form method="post">
    <button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in ViewData["personList"] as List<Person>)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<form method="post">
    <button type="submit">Print</button>
</form>
HTML

Razor Pages zu PDFs rendern

Zunächst wird unten die ChromePdfRenderer-Klasse instanziiert. Das Übergeben von this an die RenderRazorToPdf-Methode reicht aus, um diese Razor Page in ein PDF-Dokument umzuwandeln.

Sie haben vollen Zugriff auf die in RenderingOptions verfügbaren Funktionen. Zu diesen Funktionen gehören die Möglichkeit, Seitenzahlen auf das erzeugte PDF anzuwenden, angepasste Ränder einzustellen und benutzerdefinierten Text sowie HTML-Kopf- und -Fußzeilen hinzuzufügen. Sie können auch Metadaten für Ihre PDFs konfigurieren, um die richtige Identifizierung und Durchsuchbarkeit der Dokumente zu gewährleisten.

  • Öffnen Sie das Dropdown für die "persons.cshtml"-Datei, um die "persons.cshtml.cs"-Datei zu sehen.
  • Bearbeiten Sie die "persons.cshtml.cs" mit dem unten stehenden Code.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;

namespace RazorPageSample.Pages
{
    public class PersonsModel : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public List<Person> Persons { get; set; }

        // Handle GET request to load initial data
        public void OnGet()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;
        }

        // Handle POST request to convert Razor page to PDF
        public IActionResult OnPost()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;

            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render Razor Page to PDF document
            PdfDocument pdf = renderer.RenderRazorToPdf(this);

            // Return the generated PDF file with appropriate content headers
            Response.Headers.Add("Content-Disposition", "inline");
            return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");

            // Optionally view the output PDF in browser (uncomment below line if needed)
            // return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;

namespace RazorPageSample.Pages
{
    public class PersonsModel : PageModel
    {
        [BindProperty(SupportsGet = true)]
        public List<Person> Persons { get; set; }

        // Handle GET request to load initial data
        public void OnGet()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;
        }

        // Handle POST request to convert Razor page to PDF
        public IActionResult OnPost()
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
                new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
                new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
            };

            ViewData["personList"] = Persons;

            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render Razor Page to PDF document
            PdfDocument pdf = renderer.RenderRazorToPdf(this);

            // Return the generated PDF file with appropriate content headers
            Response.Headers.Add("Content-Disposition", "inline");
            return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");

            // Optionally view the output PDF in browser (uncomment below line if needed)
            // return File(pdf.BinaryData, "application/pdf");
        }
    }
}
$vbLabelText   $csharpLabel

Die Methode RenderRazorToPdf gibt ein PdfDocument-Objekt zurück, das weiter verarbeitet und bearbeitet werden kann. Sie können das PDF als PDFA oder PDFUA exportieren, eine digitale Signatur auf das gerenderte PDF-Dokument anwenden oder PDF-Dokumente zusammenführen und teilen. Mit dieser Methode können Sie auch Seiten drehen, Anmerkungen oder Lesezeichen hinzufügen und benutzerdefinierte Wasserzeichen in Ihre PDF-Datei stempeln.

Für ein besseres Dokumentenmanagement können Sie PDFs auch komprimieren, um die Dateigröße zu verringern, ohne die Qualität zu beeinträchtigen. Dies ist besonders nützlich, wenn es um große Berichte geht oder wenn die Bandbreite ein Problem darstellt. Darüber hinaus werden die umfangreichen Bearbeitungsmöglichkeiten von IronPDF in unserem umfassenden PDF-Bearbeitungs-Tutorial dokumentiert.

Wie füge ich eine Navigation für die PDF-Erstellungsseite hinzu?

Die Navigation ist entscheidend für die Benutzererfahrung in Ihrer ASP.NET Core-Anwendung. Durch die Integration der Seite zur PDF-Erzeugung in Ihre Hauptnavigation können die Benutzer leicht auf die Funktionen zugreifen, ohne manuell URLs eingeben zu müssen.

  • Navigieren Sie zu dem Ordner Pages -> Shared folder -> _Layout.cshtml. Fügen Sie das "Person"-Navigationselement nach "Home" ein.

Stellen Sie sicher, dass der Wert für das Attribut asp-page genau mit unserem Dateinamen übereinstimmt, der in diesem Fall "Persons" lautet. Dies gewährleistet die korrekte Weiterleitung innerhalb Ihrer ASP.NET Core-Anwendung:

<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>
<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>
HTML

Was passiert, wenn ich die PDF-Generierung ausführe?

Hier erfahren Sie, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen. Wenn Sie auf den Navigationslink "Person" klicken, werden die Daten in einem Tabellenformat angezeigt. Durch Klicken auf die Schaltfläche "Drucken" wird der PDF-Erzeugungsprozess ausgelöst und die aktuelle Razor Page-Ansicht in ein herunterladbares PDF-Dokument umgewandelt.

Visual Studio showing C# PersonsModel class with OnGet and OnPostAsync methods for PDF generation using IronPDF

Die generierte PDF-Datei behält das gesamte Styling und die Formatierung Ihrer Razor-Seite bei, so dass ein einheitliches Erscheinungsbild zwischen Ihrer Webansicht und der PDF-Ausgabe gewährleistet ist. Dieser Ansatz ist besonders nützlich für die Erstellung von Berichten, Rechnungen oder anderen Dokumenten, die Daten aus der Datenbank oder Geschäftslogik Ihrer Anwendung benötigen.

Wo kann ich ein komplettes ASP.NET Core Web App Beispiel herunterladen?

Sie können den vollständigen Code für diese Anleitung als gezippte Datei herunterladen, die Sie in Visual Studio als ASP.NET Core Web App-Projekt öffnen können.

Laden Sie das RazorPageSample.zip ASP.NET Core Web App Projekt herunter<\/a>

Häufig gestellte Fragen

Wie kann ich Razor Pages in ASP.NET Core in PDF konvertieren?

Sie können Razor Pages in ASP.NET Core mit der RenderRazorToPdf-Methode von IronPDF in PDF konvertieren. Installieren Sie einfach das IronPdf.Extensions.Razor-Paket und verwenden Sie den ChromePdfRenderer, um Ihre .cshtml-Dateien direkt in PDF-Dokumente zu rendern.

Welche NuGet-Pakete sind für die Konvertierung von Razor in PDF erforderlich?

Sie benötigen zwei NuGet-Pakete: IronPdf.Extensions.Razor (das Erweiterungspaket) und IronPdf (das Hauptpaket). Beide Pakete sind erforderlich, um Razor Pages in ASP.NET Core Web Apps in PDF-Dokumente umzuwandeln.

Kann ich bei der Konvertierung in PDF dynamische Daten in meinen Razor Pages verwenden?

Ja, IronPDF unterstützt dynamische Daten in Razor Pages vollständig. Sie können C#-Code, Model Binding und alle Standardfunktionen der Razor-Syntax bei der Konvertierung in PDF verwenden, was es ideal für die Erstellung von Berichten, Rechnungen und Zertifikaten mit dynamischen Inhalten macht.

Welche Arten von Dokumenten kann ich mit Razor Pages erstellen?

Die IronPDF-Konvertierung von Razor in PDF eignet sich perfekt für die Erstellung verschiedener Dokumenttypen, darunter Berichte, Rechnungen, Zertifikate, Quittungen und andere Dokumente, die eine dynamische Datendarstellung erfordern, wobei das vorhandene HTML- und CSS-Styling erhalten bleibt.

Wie schnell kann ich die Konvertierung von Razor in PDF in meinem Projekt umsetzen?

Mit IronPDF können Sie die Konvertierung von Razor in PDF in wenigen Minuten durchführen. Der minimale Arbeitsablauf umfasst nur 5 Schritte: Installieren der Bibliothek, Hinzufügen einer Modellklasse, Erstellen einer Razor-Seite, Bearbeiten der .cs-Datei zur Verwendung der RenderRazorToPdf-Methode und Ausführen Ihrer Anwendung.

Wird bei der Konvertierung mein HTML- und CSS-Styling beibehalten?

Ja, IronPDF behält Ihr HTML- und CSS-Styling bei der Konvertierung von Razor Pages in PDF bei. Dadurch können Sie die Konsistenz zwischen Ihren Webansichten und PDF-Ausgaben aufrechterhalten, indem Sie dasselbe Styling und Layout verwenden, das Sie bereits erstellt haben.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 17,012,929 | Version: 2025.12 gerade veröffentlicht