.NET幫助 Blazor .NET 8(開發者教程) Curtis Chau 更新日期:6月 22, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article Blazor,全棧網頁 UI 框架,隨著 .NET 8.0 的發布而顯著演進。此更新帶來了各種功能和增強,使開發者能夠使用 C# 和 .NET 構建互動且現代的 Web 應用程序。 在本文中,我們將深入探討 Blazor .NET 8.0 的關鍵方面,探索新的渲染模式、項目模板、工具改進等。 了解 Blazor 渲染模式 Blazor 在 .NET 8.0 中引入了三種渲染模式: 靜態伺服器渲染:生成靜態 HTML 以獲得最佳效能。 互動伺服器渲染:利用伺服器端 ASP.NET Core 執行時進行初步渲染和互動。 互動 WebAssembly 渲染:在用戶端利用 .NET WebAssembly 執行時進行後續渲染和互動。 多功能的互動自動渲染 亮點之一是互動自動渲染模式,將內容的伺服器端渲染與客戶端使用 .NET WebAssembly 執行時的後續渲染和互動結合在一起。這帶來更快的應用程序啟動體驗,是對開發人員具吸引力的選擇。 Blazor Web App 模板的引入 .NET 8.0 引入了 Blazor Web App 模板,一個結合 Blazor Server 和 Blazor WebAssembly 託管模型優勢的統一起點。 此模板包含靜態伺服器渲染、流式渲染、增強的導航和表單處理等新功能。 項目模板的整合簡化了開發過程。 簡化的 Blazor Web App 初始 JS 初始化器 傳統的 JS 初始化器已被替換為新的一組,用於 Blazor Web Apps,提供更好的控制,例如定制加載過程、日誌級別和其他選擇。 這一變化改善了開發體驗,並與在 .NET 8.0 中統一託管模型的目標保持一致。 拆分預渲染和整合指導 為了提供更專注的覆蓋,關於預渲染和整合的指導已拆分為單獨的文章。 這一變化旨在簡化理解和應用,使開發者更容易遵循最佳實踐。 Blazor Web Apps 中無痛的狀態持久性 Blazor Web Apps 現在自動保存任何在預渲染期間創建的註冊應用程序級狀態。 這使得不再需要持久性組件狀態標籤助手,從而簡化了持久化和讀取組件狀態的過程。 增強的表單處理和模型綁定 .NET 8.0 為 Blazor 組件帶來了改進的表單處理能力,包括模型綁定和數據驗證。 框架尊重數據契約屬性,為開發者提供更多控制表單數據如何綁定到模型之上。 引入的防偽支持為表單提交增加了額外的安全層。 增強的導航和表單處理 靜態伺服器渲染在 Blazor .NET 8.0 中引入了頁面導航和表單處理的顯著改進。 傳統上,完全頁面刷新發生在導航或提交表單時。 通過增強的導航功能,Blazor 攔截請求,並執行提取請求,將渲染的回應內容無縫更新到瀏覽器 DOM 中。 這樣可以避免整頁刷新,從而導致更快、更流暢的頁面加載,同時保留更多的頁面狀態。 當加載 Blazor 腳本 (blazor.web.js) 時,增強的導航默認啟用,並且可以選擇性地為特定表單啟用。 新的增強導航 API 允許開發者以程式方式刷新當前頁面,為用戶體驗提供更大的控制。 流式渲染 Blazor .NET 8.0 引入流式渲染,一個增強長時間運行異步任務的頁面用戶體驗的強大功能。 透過流式渲染,頁面可以在異步操作進行中渲染占位符內容。 操作完成後,更新的內容會流式傳輸到客戶端,在相同的回應連接上無縫更新到 DOM 中。 這種方法確保應用程序的主要布局快速渲染,並在內容供應後立即更新頁面。 鍵值服務注入 Blazor 現在支持使用 Inject 屬性注入鍵值服務。 鍵值提升了在依賴注入場景中服務註冊和消耗的範圍。 新 InjectAttribute.Key 屬性允許開發者指定要注入的服務鍵值,為服務範圍開闢了新的可能。 將 HttpContext 作為級聯參數訪問 Blazor .NET 8.0 引入了從靜態伺服器組件中以級聯參數訪問當前 HttpContext 的能力。 這一增強對於檢查和修改與 HTTP 上下文相關的標頭或其他屬性特別有用。 在 ASP.NET Core 外渲染 Razor 組件 Blazor .NET 8.0 開啟了在不屬於 HTTP 請求的情況下渲染 Razor 組件的可能性。這種靈活性允許開發者直接將 Razor 組件渲染為字符串或流,獨立於 ASP.NET Core 託管環境。 這個功能在生成 HTML 片段,如電子郵件或靜態網站內容等場景中特別方便。 區塊支持 在 Blazor .NET 8.0 中,SectionOutlet 和 SectionContent 組件的引入革新了內容管理。 這些組件允許開發者在布局中定義占位符,稍後由特定頁面填充。 區塊可以使用唯一名稱或對象 ID 進行引用,提供在構建動態網頁布局時的靈活性和可重用性。 錯誤頁面支持 Blazor Web Apps 在 .NET 8.0 中現在擁有強大的錯誤頁面支持,允許開發者為 ASP.NET Core 異常處理中間件定義自定義錯誤頁。 默認錯誤頁 (Components/Pages/Error.razor) 提供一致的用戶體驗。 即使啟用了互動,錯誤頁作為靜態伺服器組件渲染,確保異常場景的穩定性。 QuickGrid 從實驗性變為必備 QuickGrid,高性能網格組件,已從實驗性狀態畢業,成為 .NET 8 Blazor 框架的核心部分。 此組件簡化了表格數據的顯示,同時提供像排序、篩選、分頁和虛擬化這樣強大的功能。 在 ASP.NET Core Blazor QuickGrid 文檔中了解更多關於 QuickGrid 的信息。 路由到命名元素 Blazor .NET 8.0 引入對客戶端路由的支持,使用標準 URL 片段直接導航到頁面上的特定 HTML 元素。 通過使用標準 id 屬性指定 HTML 元素的標識符,當 URL 片段與元素標識符匹配時,Blazor 無縫滾動到該元素。 根級別的級聯值 Blazor .NET 8.0 通過引入可為整個組件層次結構註冊的根級別級聯值強化級聯值。 現在支持命名級聯值和更新通知的訂閱,提供更大的靈活性和控制。 虛擬化空內容 Virtualize 組件的新 EmptyContent 參數允許開發者在組件已加載且項目為空或 ItemsProviderResult<T>.TotalItemCount 為零時,提供內容。 這授予開發者創建更直觀和用户友好界面的能力。 電路管理和 SignalR 監控 Blazor .NET 8.0 引入了當沒有剩餘的交互伺服器組件時關閉電路的能力。 此優化釋放伺服器資源,增強整體性能。 此外,開發者現在可以使用 CircuitHandler 上的 CreateInboundActivityHandler 方法在伺服器端應用程序中監控入站電路活動。 使用 Jiterpreter 實現更快的執行時性能 Jiterpreter,是 .NET 8 的一項新的運行時功能,當在 WebAssembly 上運行時引入了部分即時 (JIT) 編譯支持。 這導致更優化的運行時性能,為與 Blazor WebAssembly 應用程序交互的用戶提供更流暢的體驗。 即時 (AOT) SIMD 和異常處理 Blazor WebAssembly 的 AOT 編譯現在默認使用 WebAssembly Fixed-width SIMD 和 WebAssembly 異常處理。 這一策略選擇顯著改善運行時性能,提供更高效和響應的用户體驗。 Webcil 包裝以支持友好的 Web 部署 Blazor WebAssembly 現在使用 Webcil,這是 .NET 程序集的網絡友好包裝。 這確保在阻止下載或使用 .dll 文件的環境中的兼容性,解決了部署挑戰。 Webcil 默認為 Blazor WebAssembly 應用程序啟用。 Blazor WebAssembly 調試改進 調試 Blazor WebAssembly 應用程序在 .NET 8 中變得更加順暢。調試器現在從 Visual Studio 偏好中配置的位置下載符號數據,增強了使用 NuGet 包應用程序的調試體驗。 此外,Firefox 上現在支持調試,需要配置遠程調試並通過 .NET WebAssembly 調試代理進行連接。 內容安全政策(CSP)兼容性 Blazor WebAssembly 在 .NET 8.0 中消除了在指定內容安全政策(CSP)時啟用不安全的評估腳本源的需要。 此增強簡化了安全配置,使為 Blazor WebAssembly 應用程序執行強有力的 CSP 更加容易。 處理元件生命周期之外的異常 引入的 ComponentBase.DispatchExceptionAsync 允許開發者處理在 Razor 組件的生命周期調用堆棧之外拋出的異常。 這一功能允許組件的代碼將異常視為生命周期方法異常,確保更一致和可控的錯誤處理機制。 介紹 Iron Suite Iron Software 開發的 Iron Suite 涵蓋多個實用的庫,使開發者能夠構建強大的 Blazor 應用程序。它提供了解決方案以添加 PDF 功能、Excel 或 CSV 文件功能、圖像文本識別、條形碼和 QR 碼生成和讀取,以及壓縮或解壓文件的能力。 Iron Suite 是使用 Blazor WebAssembly 託管模型或任何 Microsoft 技術進行 Web 開發的理想選擇,包括 Blazor WebAssembly 應用程序、Blazor 伺服器應用程序、ASP.NET Core MVC 應用程序、ASP.NET core Web API 或任何在 .NET 執行時構建的應用程序,無論版本如何。 Iron Suite 的圖書館 IronPDF 用於無縫創建、操縱和提取 PDF 文件中的數據。 IronPDF 的突出功能是將 HTML 轉換為 PDF,完全保留佈局和樣式。 它非常適合從網頁內容生成 PDF,包括報告、發票和文檔。 您可以將 HTML 文件、URL 或 HTML 字符串轉換為 PDF 文件。 using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } using IronPdf; class Program { static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // 1. Convert HTML String to PDF var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"; var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent); pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf"); // 2. Convert HTML File to PDF var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath); pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf"); // 3. Convert URL to PDF var url = "http://ironpdf.com"; // Specify the URL var pdfFromUrl = renderer.RenderUrlAsPdf(url); pdfFromUrl.SaveAs("URLToPDF.pdf"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class $vbLabelText $csharpLabel IronOCR(光學字符識別)用於從掃描圖像或 PDF 提取文本,增強數據的可訪問性。 IronXL 用於高效讀寫和操縱 Excel 電子表格。 IronBarcode 用於在各種格式中生成和閱讀條形碼,方便數據編碼和檢索。 IronQR 用於使用機器學習創建和讀取 QR 碼。 IronWebScraper 用於從網站提取有價值的數據,增強基於網絡的應用程序的能力。 IronZIP 用於壓縮和解壓文件,簡化數據存儲和傳輸過程。 Iron Suite 的獨特之處 僅以兩個單獨產品的價格獲得整個套件的訪問權限,以最大化您的投資價值。 無論您在 Windows、macOS 還是 Linux 上工作,Iron Suite 確保在幾乎所有平台上的兼容性。 從下載到生產只需 5 分鐘即可完成,帶來快速的過渡體驗。 訪問涵蓋所有功能的詳細文檔和示例,在開發過程中提供清晰的指導。 有一支專業的工程師團隊提供每週 5 天、每日 24 小時的支持,確保您開發過程的順利進行。 Iron Suite 附帶 30 天無問題退款政策,提供信心和安心。 結論 總之,Blazor .NET 8.0 的發布在使用 C# 和 .NET 的全棧網頁 UI 開發演進過程中標誌著一個重要的里程碑。 新的渲染模式的引入、Blazor Web App 模板、增強的導航和其他眾多功能使其成為開發人員創建現代和互動網頁應用程序的有力選擇。 Blazor .NET 8.0 還引入了增強表單處理、流式渲染和注入鍵值服務的能力,為開發增添了深度和靈活性。 Iron Software 推出的 Iron Suite 補充了 Blazor 的功能,為 .NET 生態系統中的文檔相關任務提供了全面的解決方案工具箱。 Blazor .NET 8.0 通過使用 Iron Suite 為開發人員提供創建強大且功能豐富的網頁應用程序的能力。 強大功能、性能提升和充滿活力的開發者社群支持的結合使 Blazor 成為現代網絡開發的強勢選擇。 常見問題解答 如何在 Blazor 应用程序中将 HTML 转换为 PDF? 您可以在 Blazor 应用程序中使用 IronPDF 的RenderHtmlAsPdf方法将 HTML 字符串转换为 PDF。此方法兼容 Blazor 服务器和 Blazor WebAssembly 模型。 Blazor .NET 8.0 中的新渲染模式有哪些? Blazor .NET 8.0 引入了三种新的渲染模式:静态服务器渲染、交互式服务器渲染和交互式 WebAssembly 渲染,旨在优化性能和交互性。 Iron Suite 如何增强 Blazor 应用程序? Iron Suite 通过提供诸如 PDF 处理、OCR、Excel 操作和条形码生成等功能来增强 Blazor 应用程序,这些功能对于稳健的 Web 应用程序开发至关重要。 Blazor .NET 8.0 中的交互式自动渲染模式是什么? Blazor .NET 8.0 中的交互式自动渲染模式结合了服务器端渲染和客户端交互,利用 .NET WebAssembly 运行时加快应用程序启动。 如何改善 Blazor .NET 8.0 中的表单处理? Blazor .NET 8.0 通过增强的模型绑定、数据验证和反伪造支持来改善表单处理,为开发人员提供了更多的表单数据管理控制。 Blazor .NET 8.0 中流式渲染的目的是什么? Blazor .NET 8.0 中的流式渲染允许在长时间运行的异步任务完成时初始渲染占位符内容,通过无缝更新页面来增强用户体验。 Blazor 的 Web 应用程序模板如何简化开发? Blazor 8.0 的 Web 应用程序模板统一了 Blazor 服务器和 Blazor WebAssembly 模型,通过增强的导航和表单处理简化了开发过程。 Iron Software 的工具包如何补充 Blazor .NET 8.0? Iron Software 的工具包通过提供全面的文档相关功能来补充 Blazor .NET 8.0,增强框架处理复杂文档处理任务的能力。 在 Blazor Web 应用程序中使用 IronPDF 有哪些好处? IronPDF 提供强大的 PDF 生成和操作功能,非常适合需要稳健的文档处理功能的 Blazor Web 应用程序开发人员。 在 Blazor .NET 8.0 中调试有哪些改进? Blazor .NET 8.0 通过增强的符号数据下载并增加对 Firefox 的支持来改进 WebAssembly 应用程序的调试,简化调试过程。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新日期 9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新日期 9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 更新日期 8月 5, 2025 C#開關模式匹配(對開發者來說是如何工作的) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 C# KeyValuePair(開發者的工作原理)BinaryKits.Zpl.Viewer(開發者...