IronPDF 操作指南 CSHTML 到 PDF (MVC 框架) 如何在 ASP.NET MVC 中使用 C# 將視圖轉換成 PDF Curtis Chau 更新:2026年1月10日 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronPDF 可讓您使用 ChromePdfRenderer.RenderView() 方法將 ASP.NET MVC 視圖轉換為 PDF 文件,只需幾行程式碼。 IronPdf.Extensions.Mvc.Framework 套件提供與 ASP.NET MVC 專案的無縫整合,可將 CSHTML 視圖渲染為 PDF。 View 是 ASP.NET 框架中的一個元件,用於在 Web 應用程式中產生 HTML 標記。 它是模型-視圖-控制器 (MVC) 模式的一部分,常用於 ASP.NET MVC 和 ASP.NET Core MVC 應用程式。 視圖負責透過動態渲染 HTML 內容向使用者呈現資料。 IronPDF 的 Chrome PDF 渲染引擎 的強大功能可確保您的視圖以像素級的精確度進行渲染,並保持所有的樣式、佈局和互動元素。 ASP.NET Web 應用程式 (.NET Framework) MVC 是微軟提供的 Web 應用程式框架。 它遵循一種稱為模型-視圖-控制器(MVC)的結構化架構模式,以組織和簡化 Web 應用程式的開發。 模型:管理資料、業務邏輯和資料完整性。 視圖:呈現使用者介面並渲染資訊。 控制器 (Controller):處理使用者輸入、處理請求,並協調模型 (Model) 與視圖 (View) 之間的互動。 IronPDF 簡化了在 ASP.NET MVC 專案中從視圖建立 PDF 檔案的過程。 這使得在 ASP.NET MVC 中產生 PDF 變得簡單直接。 無論您是從網頁檢視中產生發票、報告或任何文件,IronPDF 都能提供專業 PDF 輸出所需的工具。 如需全面的安裝指南,請造訪 安裝概述 頁面。 快速入門:輕鬆將 ASP.NET MVC 視圖轉換為 PDF 了解如何使用 IronPDF 快速將 ASP.NET MVC 視圖轉換為 PDF 文件。 只需幾行程式碼,即可將 CSHTML 視圖渲染成高品質的 PDF,從而增強應用程式的功能。 IronPDF 簡化了流程,讓各個層級的開發人員都能輕鬆上手。 首先將 IronPDF 整合到您的 ASP.NET Core 專案中,即可輕鬆地從視圖產生 PDF。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronPDF PM > Install-Package IronPdf 複製並運行這段程式碼。 // Install-Package IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronPDF,免費試用! 免費試用30天 ### 最小工作流程(5 個步驟) 下載用於在 ASP.NET MVC 中將視圖轉換為 PDF 的 C# 程式庫 為數據添加模型類別 在控制器中建立一個名為"Person"的操作,並使用RenderView方法。 使用 MVC 5 View Scaffolded 添加視圖 下載示例項目以快速開始 我需要哪些擴充套件? 為什麼 IronPDF 需要擴充套件? IronPdf.Extensions.Mvc.Framework 套件是IronPdf主包的擴充。 IronPdf.Extensions.Mvc.Framework 和 IronPdf 包都是在 ASP.NET MVC 中將視圖繪製成 PDF 文件所必需的。 這樣的分離允許優化 MVC 框架特有的功能,同時維持核心的 PDF 呈現功能。 如何安裝擴充套件? 安裝 IronPdf.Extensions.Mvc.Framework 套件 <! -- NuGet 函式庫下載指令標籤 ::開始 --> ### 使用 NuGet 安裝 安裝 IronPdf.Extensions.Mvc.Framework 套件 複製套件管理員指令 複製套件管理員指令 (按鈕) nuget.org/packages/IronPdf.Extensions.Mvc.Framework/ 如何將視圖繪製成 PDF? 我需要哪一種專案類型? 若要將視圖轉換成 PDF 檔案,您需要一個 ASP.NET Web 應用程式 (.NET Framework) MVC 專案。 IronPdf 支援各種 MVC 版本,並提供廣泛的 渲染選項,可根據您的需求自訂 PDF 輸出。 如何新增模型類別? 我應該在哪裡建立模型? 導覽至"模型"資料夾 建立一個新的 C# 類檔案,命名為 "Person"。此類作為表示個人資料的模型。 使用下列代碼: :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 $vbLabelText $csharpLabel 如何編輯控制器? 我應該在控制器中加入哪些程式碼? 導覽至"Controllers"資料夾,並開啟"HomeController"檔案。使用下列程式碼新增"Persons"動作: 在提供的程式碼中,首先創建了ChromePdfRenderer類別。 若要使用 RenderView 方法,請為其提供 HttpContext、指定 "Persons.cshtml" 檔案的路徑,並提供包含必要資料的 List<Person> 方法。 在呈現 View 時,您可以利用 RenderingOptions 自訂頁邊空白、新增 自訂文字和 HTML 頁首頁尾,以及將 頁數套用至產生的 PDF 文件。 請注意可以使用以下程式碼將 PDF 文件下載到電腦: File(pdf.BinaryData, "application/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() { // Create a list of Person objects 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") { // Define the path to the View file var viewPath = "~/Views/Home/Persons.cshtml"; // Instantiate the ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render the view to a PDF document PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); // Set headers to view the PDF in-browser Response.Headers.Add("Content-Disposition", "inline"); // Return the generated PDF file 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() { // Create a list of Person objects 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") { // Define the path to the View file var viewPath = "~/Views/Home/Persons.cshtml"; // Instantiate the ChromePdfRenderer ChromePdfRenderer renderer = new ChromePdfRenderer(); // Render the view to a PDF document PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); // Set headers to view the PDF in-browser Response.Headers.Add("Content-Disposition", "inline"); // Return the generated PDF file 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 ' Create a list of Person objects '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 ' Define the path to the View file Dim viewPath = "~/Views/Home/Persons.cshtml" ' Instantiate the ChromePdfRenderer Dim renderer As New ChromePdfRenderer() ' Render the view to a PDF document Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons_Conflict) ' Set headers to view the PDF in-browser Response.Headers.Add("Content-Disposition", "inline") ' Return the generated PDF file 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 $vbLabelText $csharpLabel 如何自訂 PDF 渲染選項? 對於更進階的情況,您可以使用各種渲染選項自訂 PDF 輸出。 以下是自訂頁邊、紙張大小和其他設定的範例: // Advanced rendering with custom options public ActionResult PersonsAdvanced() { var persons = GetPersonsList(); if (HttpContext.Request.HttpMethod == "POST") { var viewPath = "~/Views/Home/Persons.cshtml"; // Configure the renderer with custom options ChromePdfRenderer renderer = new ChromePdfRenderer(); // Set custom rendering options renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; // Set custom paper size renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait; // Add header and footer renderer.RenderingOptions.TextHeader.DrawDividerLine = true; renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}"; renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; renderer.RenderingOptions.TextHeader.FontSize = 12; renderer.RenderingOptions.TextFooter.DrawDividerLine = true; renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial; renderer.RenderingOptions.TextFooter.FontSize = 10; renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"; // Enable JavaScript execution if needed renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute // Render the view to PDF PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); // Optional: Apply compression to reduce file size pdf.CompressImages(60); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf"); } return View("Persons", persons); } // Advanced rendering with custom options public ActionResult PersonsAdvanced() { var persons = GetPersonsList(); if (HttpContext.Request.HttpMethod == "POST") { var viewPath = "~/Views/Home/Persons.cshtml"; // Configure the renderer with custom options ChromePdfRenderer renderer = new ChromePdfRenderer(); // Set custom rendering options renderer.RenderingOptions.MarginTop = 40; renderer.RenderingOptions.MarginBottom = 40; renderer.RenderingOptions.MarginLeft = 20; renderer.RenderingOptions.MarginRight = 20; // Set custom paper size renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4; renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait; // Add header and footer renderer.RenderingOptions.TextHeader.DrawDividerLine = true; renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}"; renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica; renderer.RenderingOptions.TextHeader.FontSize = 12; renderer.RenderingOptions.TextFooter.DrawDividerLine = true; renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial; renderer.RenderingOptions.TextFooter.FontSize = 10; renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"; // Enable JavaScript execution if needed renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute // Render the view to PDF PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons); // Optional: Apply compression to reduce file size pdf.CompressImages(60); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf"); } return View("Persons", persons); } Imports System.Web.Mvc Imports IronPdf ' Advanced rendering with custom options Public Function PersonsAdvanced() As ActionResult Dim persons = GetPersonsList() If HttpContext.Request.HttpMethod = "POST" Then Dim viewPath = "~/Views/Home/Persons.cshtml" ' Configure the renderer with custom options Dim renderer As New ChromePdfRenderer() ' Set custom rendering options renderer.RenderingOptions.MarginTop = 40 renderer.RenderingOptions.MarginBottom = 40 renderer.RenderingOptions.MarginLeft = 20 renderer.RenderingOptions.MarginRight = 20 ' Set custom paper size renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4 renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait ' Add header and footer renderer.RenderingOptions.TextHeader.DrawDividerLine = True renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}" renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica renderer.RenderingOptions.TextHeader.FontSize = 12 renderer.RenderingOptions.TextFooter.DrawDividerLine = True renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial renderer.RenderingOptions.TextFooter.FontSize = 10 renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}" ' Enable JavaScript execution if needed renderer.RenderingOptions.EnableJavaScript = True renderer.RenderingOptions.RenderDelay = 500 ' Wait for JS to execute ' Render the view to PDF Dim pdf As PdfDocument = renderer.RenderView(Me.HttpContext, viewPath, persons) ' Optional: Apply compression to reduce file size pdf.CompressImages(60) Response.Headers.Add("Content-Disposition", "inline") Return File(pdf.BinaryData, "application/pdf") End If Return View("Persons", persons) End Function $vbLabelText $csharpLabel 如需優化邊界的更多資訊,請參閱我們的 設定自訂邊界指南。 如果您需要使用特定的紙張尺寸,請查看我們的 自訂紙張尺寸文件。 我可以用生成的 PDF 做什麼? 透過RenderView方法取得PdfDocument物件後,您可以對其進行各種改進和調整。 您可以將 PDF 轉換為 PDFA 或 PDFUA 格式,將 數位簽名套用至建立的 PDF,或根據需要 合併與分割 PDF 文件。 該函式庫可讓您旋轉頁面、插入 annotations 或 書籤,以及 為 PDF 檔案套用明顯的水印。 若要優化檔案大小,請考慮使用 PDF Compression 技術。 在處理 JavaScript 繁重的內容時,我們的 JavaScript 渲染指南 提供了處理自訂渲染延遲的詳細資訊。 有關各種匯出選項,請參閱我們的 Save & Export PDF Documents 全面指南。 如何新增檢視? 建立檢視應該遵循哪些步驟? 在新增的 Person 動作上按一下滑鼠右鍵,然後選擇"新增檢視"。 。 為新的 Scaffolded 專案選擇"MVC 5 視圖"。 。 選擇"清單"範本和"人員"模型類別。 !Visual Studio 中的新增檢視對話框,顯示使用 List 模版和 Person 模型類別的 Persons 檢視設定。 這會建立一個名為 "Persons" 的 .cshtml 檔案。 如何在檢視中加入列印按鈕? 導覽至"Views"資料夾 -> "Home"資料夾 -> "Persons.cshtml"檔案。 若要新增一個可以呼叫"人員"操作的按鈕,請使用以下程式碼: @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" /> } HTML 我該如何在頂部導覽列中加入一個區段? 我應該在哪裡更新導覽? 在"Views"資料夾中,導覽至"Shared"資料夾 -> "_Layout.cshtml"檔案。將 "Person" 導覽項放在 "Home" 之後。 確保 ActionLink 方法的值與我們的檔案名稱 (即 "Persons") 完全相符。 <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> HTML 如何執行和測試專案? 運行專案 這會告訴您如何執行專案並產生 PDF 文件。 輸出 PDF 哪裡可以下載完整的專案? 範例專案包含哪些內容? 您可以下載本指南的完整程式碼。它是一個壓縮檔,您可以在 Visual Studio 中以 ASP.NET Web Application (.NET Framework) MVC 專案的形式開啟。 本範例包含所有必要的配置、模型類別、控制器和檢視,讓您在 MVC 應用程式中快速開始使用 PDF 產生功能。 下載用於 PDF 轉換的 MVC 範例項目 常見問題解答 如何在 ASP.NET MVC 中將 CSHTML 視圖轉換為 PDF? 您可以在 ASP.NET MVC 中使用 IronPDF 的 ChromePdfRenderer.RenderView() 方法將 CSHTML 視圖轉換為 PDF。只需安裝 IronPdf.Extensions.Mvc.Framework 套件,並使用該渲染方法,僅需幾行程式碼即可將視圖轉化成高品質的 PDF 文件。 將視圖繪製成 PDF 所需的最少程式碼是多少? 將視圖繪製成 PDF 的最小代碼是: var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext); 這一行使用 IronPDF 的代碼就可以將您目前的視圖轉換成 PDF 文件。 ASP.NET MVC PDF 生成需要哪个扩展包? 對於 ASP.NET MVC 應用程式,您需要 IronPdf.Extensions.Mvc.Framework 套件。此擴充套件可與 ASP.NET MVC 專案無縫整合,並與 IronPdf 主套件一起運作,以啟用檢視至 PDF 的轉換功能。 將檢視轉換為 PDF 時,會使用何種渲染引擎? IronPdf 使用 Chrome PDF 渲染引擎,可確保將視圖轉換為 PDF 時的精確度達到像素級。該引擎可在最終 PDF 輸出中保留原始 CSHTML 視圖中的所有樣式、佈局和互動元素。 我可以從 MVC 視圖產生發票和報告嗎? 是的,IronPDF 非常適合從您的 MVC 視圖中產生發票、報告和任何其他文件。該函式庫提供專業的 PDF 輸出功能,使其成為直接從您的 Web 應用程式檢視建立商業文件的理想選擇。 實現視圖轉換為 PDF 的基本步驟是什麼? 基本實作包括 5 個步驟:1) 下載並安裝 IronPDF 函式庫;2) 為您的資料新增一個模型類別;3) 使用 RenderView 方法建立控制器動作;4) 使用 MVC 5 View Scaffolding 新增 View;5) 使用 IronPDF 的渲染方法執行轉換。 PDF 輸出是否維持原始的檢視樣式? 是的,IronPDF 的 Chrome 渲染引擎可確保您 CSHTML 視圖中的所有 CSS 定義、佈局和互動元素在 PDF 輸出中得以保留。這提供了像素完美的精確度,並維持您原始網頁檢視的視覺完整性。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 17,386,124 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:17,386,124 查看許可證