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

How to Convert Razor Pages to PDFs in ASP.NET Core Web App

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

Eine Razor-Page ist eine Datei mit der Endung .cshtml, die C# und HTML kombiniert, um Webinhalte zu generieren. In ASP.NET Core sind Razor Pages eine einfachere Methode, um Code für Webanwendungen zu organisieren, was sie zu einer guten Wahl für einfache Seiten macht, die entweder nur gelesen werden oder einfache Dateneingaben erfordern.

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. Dies macht die PDF-Erstellung in ASP.NET Core Web Apps einfach und direkt.

Schneller Einstieg: Razor Pages in Sekundenschnelle in PDF umwandeln

Nutzen Sie die Leistungsfähigkeit von IronPDF, um Ihre Razor Pages schnell in hochwertige PDFs in einer ASP.NET Core-Anwendung umzuwandeln. Durch die Verwendung der RenderRazorToPdf-Methode können Sie CSHTML-Dateien nahtlos in PDF-Dokumente umwandeln, Ihren Arbeitsablauf optimieren und die Dokumentenverteilung verbessern. Diese Anleitung führt Sie in wenigen Minuten durch die einfachen Schritte, die notwendig sind, um diesen Prozess für Entwickler reibungslos und effizient zu gestalten.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    // Install-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Arbeitsablauf (5 Schritte)

  1. Laden Sie die C#-Bibliothek herunter, um Razor Pages zu PDFs in ASP.NET Core Web App umzuwandeln
  2. Fügen Sie eine Modellklasse für die Daten hinzu
  3. Erstellen Sie eine neue Razor Page und bearbeiten Sie die ".cshtml"-Datei, um die Daten anzuzeigen
  4. Bearbeiten Sie die ".cs"-Datei und verwenden Sie die RenderRazorToPdf-Methode
  5. Laden Sie das Beispielprojekt für einen schnellen Einstieg herunter

IronPDF Erweiterungspaket

Das IronPdf.Extensions.Razor-Paket ist eine Erweiterung des Hauptpakets IronPdf. Sowohl die Pakete IronPdf.Extensions.Razor als auch IronPdf sind erforderlich, um Razor Pages in PDF-Dokumente in einer ASP.NET Core Web App umzuwandeln.

# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
SHELL
class="products-download-section">
data-modal-id="trial-license-after-download">
class="product-image"> C# NuGet Bibliothek für PDF
class="product-info">

Installieren mit NuGet

class="copy-nuget-row">
Install-Package IronPdf.Extensions.Razor
class="copy-button">
class="nuget-link">nuget.org/packages/IronPdf.Extensions.Razor/

Razor Pages zu PDFs rendern

Sie benötigen ein ASP.NET Core Web App-Projekt, um Razor Pages in PDF-Dateien umzuwandeln.

Erstellen Sie eine Modellklasse

  • 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; }
    }
}
Namespace RazorPageSample.Models
	Public Class Person
		Public Property Id() As Integer
		Public Property Name() As String
		Public Property Title() As String
		Public Property Description() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Fügen Sie eine Razor Page hinzu

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

  • Bearbeiten Sie die neu erstellte "persons.cshtml"-Datei mit dem unten aufgeführten Code-Beispiel.

Der Code unten dient dazu, die Informationen im Browser anzuzeigen.

@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

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.

Dem Benutzer stehen alle Funktionen zur Verfügung, die in RenderingOptions enthalten sind. These features include the ability to apply page numbers to the generated PDF, set custom margins, and add custom text as well as HTML headers and footers.

  • Ö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");
        }
    }
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models

Namespace RazorPageSample.Pages
	Public Class PersonsModel
		Inherits PageModel

		<BindProperty(SupportsGet := True)>
		Public Property Persons() As List(Of Person)

		' Handle GET request to load initial data
		Public Sub OnGet()
			Persons = New List(Of Person) From {
				New Person With {
					.Name = "Alice",
					.Title = "Mrs.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Bob",
					.Title = "Mr.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Charlie",
					.Title = "Mr.",
					.Description = "Software Engineer"
				}
			}

			ViewData("personList") = Persons
		End Sub

		' Handle POST request to convert Razor page to PDF
		Public Function OnPost() As IActionResult
			Persons = New List(Of Person) From {
				New Person With {
					.Name = "Alice",
					.Title = "Mrs.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Bob",
					.Title = "Mr.",
					.Description = "Software Engineer"
				},
				New Person With {
					.Name = "Charlie",
					.Title = "Mr.",
					.Description = "Software Engineer"
				}
			}

			ViewData("personList") = Persons

			Dim renderer As New ChromePdfRenderer()

			' Render Razor Page to PDF document
			Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)

			' 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");
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Die RenderRazorToPdf-Methode gibt ein PdfDocument-Objekt zurück, das weiterverarbeitet und bearbeitet werden kann. You can export the PDF as PDFA or PDFUA, apply a digital signature to the rendered PDF document, or merge and split PDF documents. The method also allows you to rotate pages, add annotations or bookmarks, and stamp custom watermarks onto your PDF.

Fügen Sie einen Abschnitt zur Hauptnavigationsleiste hinzu

  • 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 asp-page-Attribut genau mit unserem Dateinamen übereinstimmt, der in diesem Fall "Persons" ist.

<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

Das Projekt ausführen

Dies zeigt Ihnen, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen.

Ausführen des ASP.NET Core Web App-Projekts

Download des ASP.NET Core Web App-Projekts

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.

Download des RazorPageSample.zip ASP.NET Core Web App Project

Häufig gestellte Fragen

Wofür werden Razor-Seiten in ASP.NET Core verwendet?

Razor-Seiten werden in ASP.NET Core verwendet, um den Code für Webanwendungen zu organisieren und Entwicklern zu ermöglichen, C# und HTML effizient zu kombinieren, um Webinhalte zu erstellen.

Wie konvertiert man Razor-Seiten in PDF-Dokumente in C#?

Sie können Razor-Seiten in PDF-Dokumente in C# konvertieren, indem Sie die RenderRazorToPdf-Methode von IronPDF verwenden, die die ChromePdfRenderer-Klasse nutzt, um PDFs aus CSHTML-Dateien zu erzeugen.

Welche NuGet-Pakete sind unerlässlich für das Rendern von Razor-Seiten zu PDFs?

Die unerlässlichen NuGet-Pakete für das Rendern von Razor-Seiten zu PDFs sind IronPdf und IronPdf.Extensions.Razor.

Wie kann man die notwendigen Pakete für die PDF-Konvertierung in ASP.NET Core installieren?

Sie können die notwendigen Pakete für die PDF-Konvertierung installieren, indem Sie den NuGet-Paketmanager mit dem Befehl verwenden: Install-Package IronPdf.Extensions.Razor.

Welche Rolle spielt eine Modellklasse bei der Konvertierung von Razor-Seiten zu PDFs?

Eine Modellklasse, wie 'Person', definiert die Datenstruktur für die Anwendung und hilft, die Informationen zu organisieren, die auf der Razor-Seite angezeigt werden, die in ein PDF konvertiert wird.

Welche Methode wird verwendet, um Razor-Seiten in PDF-Dokumente zu rendern?

Die RenderRazorToPdf-Methode wird verwendet, um Razor-Seiten in PDF-Dokumente zu rendern, indem sie die ChromePdfRenderer-Klasse von IronPDF nutzt.

Kann man die PDF-Ausgabe beim Konvertieren von Razor-Seiten verbessern?

Ja, IronPDF erlaubt es Ihnen, die PDF-Ausgabe mit Funktionen wie Seitenzahlen, benutzerdefinierten Rändern und HTML-Headern und -Fußzeilen mithilfe von RenderingOptions zu verbessern.

Welche fortschrittlichen Funktionen stehen beim Erzeugen von PDFs mit IronPDF zur Verfügung?

Fortschrittliche Funktionen mit IronPDF umfassen das Exportieren als PDFA oder PDFUA, das Hinzufügen digitaler Signaturen, das Zusammenführen oder Teilen von PDFs, das Drehen von Seiten und das Anwenden benutzerdefinierter Wasserzeichen.

Wo kann man das komplette ASP.NET Core Web App-Projekt finden, um die Konvertierung von Razor-Seiten zu PDF zu üben?

Das komplette ASP.NET Core Web App-Projekt zur Übung der Konvertierung von Razor-Seiten zu PDF kann als gezippte Datei von dem bereitgestellten Link heruntergeladen werden und ist bereit für die Nutzung in Visual Studio.

Ist IronPDF mit .NET 10 kompatibel, wenn CSHTML- oder Razor-Ansichten in PDF konvertiert werden?

Ja. IronPDF ist vollständig kompatibel mit .NET 10 für die Konvertierung von CSHTML/Razor-Ansichten in PDF. Ihre Projekte können ohne zusätzliche Konfiguration auf .NET 10 abzielen – Funktionen wie RenderRazorToPdf , ChromePdfRenderer und die asynchrone PDF-Generierung funktionieren wie erwartet.

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 16,154,058 | Version: 2025.11 gerade veröffentlicht