Konvertieren von Ansichten in PDFs in ASP.NET MVC
Eine Ansicht ist eine Komponente des ASP.NET-Frameworks, die zur Erzeugung von HTML-Markup in Webanwendungen verwendet wird. Es ist ein Teil des Model-View-Controllers(MVC) muster, das häufig in ASP.NET MVC- und ASP.NET Core MVC-Anwendungen verwendet wird. Ansichten sind für die Darstellung von Daten für den Benutzer verantwortlich, indem sie HTML-Inhalte dynamisch wiedergeben.
ASP.NET-Webanwendung(.NET-Framework) MVC ist ein von Microsoft bereitgestelltes Framework für Webanwendungen. Es folgt einem strukturierten Architekturmuster, das als Model-View-Controller bekannt ist(MVC) zur Organisation und Rationalisierung der Entwicklung von Webanwendungen.
- Modell: Verwaltet Daten, Geschäftslogik und Datenintegrität.
- Ansicht: Zeigt die Benutzeroberfläche an und stellt Informationen dar.
Controller: Bearbeitet Benutzereingaben, verarbeitet Anfragen und koordiniert die Interaktionen zwischen Modell und Ansicht.
IronPDF vereinfacht den Prozess der Erstellung von PDF-Dateien aus Ansichten innerhalb eines ASP.NET MVC-Projekts. Dies macht die PDF-Erstellung in ASP.NET MVC einfach und direkt.
Konvertieren von Ansichten in PDFs in ASP.NET MVC
- Laden Sie die C#-Bibliothek zum Konvertieren von Ansichten in PDFs in ASP.NET MVC herunter
- Hinzufügen einer Modellklasse für die Daten
- Erstellen Sie eine Aktion "Person" im Controller und verwenden Sie die
RenderView
methode - Hinzufügen einer Ansicht mit dem MVC 5 View Scaffolded
- Laden Sie das Beispielprojekt für einen schnellen Start herunter
IronPDF-Erweiterungspaket
Das Paket IronPdf.Extensions.Mvc.Framework ist eine Erweiterung des Hauptpakets IronPdf. Sowohl das IronPdf.Extensions.Mvc.Framework als auch das IronPdf-Paket sind erforderlich, um Ansichten in PDF-Dokumente in einem ASP.NET MVC zu rendern.
PM > Install-Package IronPdf.Extensions.Mvc.Framework
Installieren mit NuGet
Install-Package IronPDF.Extensions.Mvc.Framework
Ansichten in PDFs rendern
Zum Konvertieren von Ansichten in PDF-Dateien benötigen Sie eine ASP.NET-Webanwendung(.NET-Framework) MVC-Projekt.
Hinzufügen einer Modellklasse
- Navigieren Sie zum Ordner "Models"
- Erstellen Sie eine neue C#-Klassendatei mit dem Namen "Person" Diese Klasse wird als Modell für die Darstellung individueller Daten dienen. Verwenden Sie den folgenden Codeschnipsel:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-mvc-framework-model.cs
namespace ViewToPdfMVCSample.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 ViewToPdfMVCSample.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
Bearbeiten Sie den Controller
Navigieren Sie zum Ordner "Controllers" und öffnen Sie die Datei "HomeController". Wir werden die Aktion "Personen" hinzufügen. Bitte beachten Sie den nachstehenden Code als Orientierungshilfe:
In dem mitgelieferten Code wird zunächst die Klasse ChromePdfRenderer erstellt. Um die Methode "RenderView" zu verwenden, müssen Sie ihr einen HttpContext übergeben, den Pfad zur Datei "Persons.cshtml" angeben und eine Liste mit den erforderlichen Daten bereitstellen. Beim Rendern der Ansicht haben die Benutzer die Möglichkeit, RenderingOptions zu verwenden, um die Ränder anzupassen und zusätzlichebenutzerdefinierter Text und HTML-Kopf- und -Fußzeilenund anwendenseitenzahlen in das resultierende PDF-Dokument.
Bitte beachten Sie
Datei(pdf.BinaryData, "anwendung/pdf", "viewToPdfMVC.pdf")
.using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;
namespace ViewToPdfMVCSample.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
// GET: Person
public ActionResult Persons()
{
var 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" }
};
if (HttpContext.Request.HttpMethod == "POST")
{
// Provide the path to your View file
var viewPath = "~/Views/Home/Persons.cshtml";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
Response.Headers.Add("Content-Disposition", "inline");
// View the PDF
return File(pdf.BinaryData, "application/pdf");
}
return View(persons);
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;
namespace ViewToPdfMVCSample.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
// GET: Person
public ActionResult Persons()
{
var 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" }
};
if (HttpContext.Request.HttpMethod == "POST")
{
// Provide the path to your View file
var viewPath = "~/Views/Home/Persons.cshtml";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);
Response.Headers.Add("Content-Disposition", "inline");
// View the PDF
return File(pdf.BinaryData, "application/pdf");
}
return View(persons);
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Web.Mvc
Imports ViewToPdfMVCSample.Models
Namespace ViewToPdfMVCSample.Controllers
Public Class HomeController
Inherits Controller
Public Function Index() As ActionResult
Return View()
End Function
' GET: Person
Public Function Persons() As ActionResult
'INSTANT VB NOTE: The local variable persons was renamed since Visual Basic will not allow local variables with the same name as their enclosing function or property:
Dim persons_Conflict = 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"
}
}
If HttpContext.Request.HttpMethod = "POST" Then
' Provide the path to your View file
Dim viewPath = "~/Views/Home/Persons.cshtml"
Dim renderer As New ChromePdfRenderer()
' Render View to PDF document
Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict)
Response.Headers.Add("Content-Disposition", "inline")
' View the PDF
Return File(pdf.BinaryData, "application/pdf")
End If
Return View(persons_Conflict)
End Function
Public Function About() As ActionResult
ViewBag.Message = "Your application description page."
Return View()
End Function
Public Function Contact() As ActionResult
ViewBag.Message = "Your contact page."
Return View()
End Function
End Class
End Namespace
Sobald Sie das PdfDocument-Objekt über die Methode "RenderView" erhalten haben, können Sie verschiedene Verbesserungen und Anpassungen daran vornehmen. Sie können die PDF-Datei konvertieren inPDFA oderPDFUA formate, Zeichendigitale Signatur in die erstellte PDF-Datei einfügen, oderzusammenführen und Aufteilen PDF-Dokumente nach Bedarf. Außerdem ermöglicht die Bibliothek das Drehen von Seiten, das Einfügen vonanmerkungen oderlesezeichenundeindeutige Wasserzeichen anwenden zu Ihren PDF-Dateien.
Eine Ansicht hinzufügen
Klicken Sie mit der rechten Maustaste auf die neu hinzugefügte Aktion Person und wählen Sie "Ansicht hinzufügen"
Wählen Sie "MVC 5 View" für das neue Scaffolded Item.
Wählen Sie die Vorlage "Liste" und die Modellklasse "Person".
Dadurch wird eine .cshtml-Datei mit dem Namen "Personen" erstellt
Navigieren Sie zum Ordner "Views" -> Ordner "Home" -> Datei "Persons.cshtml".
Um eine Schaltfläche hinzuzufügen, die die Aktion "Personen" aufruft, verwenden Sie den folgenden Code:
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
<input type="submit" value="Print Person" />
}
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
<input type="submit" value="Print Person" />
}
Einen Abschnitt zur oberen Navigationsleiste hinzufügen
Navigieren Sie im Ordner "Views" zum Ordner "Shared" -> Datei "_Layout.cshtml". Platzieren Sie das Navigationselement "Person" nach "Home"
Stellen Sie sicher, dass die Werte für die ActionLink-Methode genau mit unserem Dateinamen übereinstimmen, der in diesem Fall "Personen" lautet
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
<div class="container">
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
</ul>
</div>
</div>
</nav>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
<div class="container">
@Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
<li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
</ul>
</div>
</div>
</nav>
Das Projekt ausführen
Hier erfahren Sie, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen.
Ausgabe PDF
ASP.NET MVC-Projekt herunterladen
Sie können den vollständigen Code für diese Anleitung herunterladen. Er wird als gezippte Datei geliefert, die Sie in Visual Studio als ASP.NET-Webanwendung öffnen können(.NET-Framework) MVC-Projekt.
Laden Sie das MVC-Beispielprojekt für die PDF-Konvertierung herunter