.NET 帮助 Blazor .NET 8(开发者教程) Curtis Chau 已更新:六月 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 全栈 Web 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 应用模板的引入 .NET 8.0 引入了 Blazor Web 应用模板,这是一个整合了 Blazor 服务器和 Blazor WebAssembly 托管模型优点的统一起点。 此模板结合了新功能,如静态服务器渲染、流式渲染、增强的导航和表单处理。 项目模板的整合简化了开发过程。 Blazor Web 应用的精简 JS 初始化器 传统的 JS 初始化器已被一组新的 Blazor Web 应用初始化器取代,提供了更好的任务控制,如自定义加载过程,日志等级和其他选项。 此更改改善了开发体验,并符合在 .NET 8.0 中统一托管模型的目标。 将预渲染和集成指南拆分 为了提供更集中的覆盖面,关于预渲染和集成的指南被拆分为单独的文章。 此更改旨在简化理解和实施,使开发人员更容易遵循最佳实践。 Blazor Web 应用中轻松的状态持久化 Blazor Web 应用现在会自动持久化在预渲染期间创建的任何注册的应用程序级别状态。 这消除了使用 Persist Component State Tag Helper 的需要,简化了组件状态的持久化和读取过程。 增强的表单处理和模型绑定 .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 应用在 .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 引入了在没有剩余交互式服务器组件时关闭电路的能力。 此优化释放了服务器资源并提高了整体性能。 此外,开发人员现在可以使用 CreateInboundActivityHandler 方法在 CircuitHandler 上监控服务器端应用中的入站电路活动。 使用 Jiterpreter 实现更快的运行时性能 Jiterpreter 是 .NET 8 中的新运行时功能,引入了在 WebAssembly 上运行时的部分即时(JIT)编译支持。 这导致改善了运行时性能,为与 Blazor WebAssembly 应用互动的用户提供了更流畅的体验。 提前(AOT)SIMD 和异常处理 Blazor WebAssembly 的 AOT 编译现在默认使用 WebAssembly 固定宽度 SIMD 和 WebAssembly 异常处理。 这一战略选择显著改善了运行时性能,提供了更高效和响应性更强的用户体验。 Webcil 打包用于网络友好部署 Blazor WebAssembly 现在使用 Webcil,这是一种 .NET 程序集的网络友好包装。 这确保了在阻止下载或使用 .dll 文件的环境中的兼容性,解决了部署挑战。 Webcil 在 Blazor WebAssembly 应用中默认启用。 Blazor WebAssembly 调试改进 在 .NET 8 中调试 Blazor WebAssembly 应用已变得更加精简。调试器现在从在 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,由 Iron Software 开发,包含几个有用的库,使开发人员能够构建强大的 Blazor 应用程序。它提供了用于添加 PDF 功能、Excel 或 CSV 文件功能、图像到文本识别、条形码和 QR 码生成与读取以及压缩或解压文件的解决方案。 Iron Suite 是使用 Blazor WebAssembly 托管模型或任何 Microsoft 技术(包括 Blazor WebAssembly 应用、Blazor 服务器应用、ASP.NET Core MVC 应用、ASP.NET core WEB API 或任何使用 .NET 运行时构建的应用)进行 Web 开发的理想选择,无论其版本如何。 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 用于从网站提取有价值的数据,增强基于 Web 的应用的功能。 IronZIP 用于压缩和解压文件,简化数据存储和传输过程。 Iron Suite 的独特之处 以仅两个单独产品的价格获得整个套件的访问权限,最大化您的投资价值。 无论您在 Windows、macOS 还是 Linux 上工作,Iron Suite 确保几乎所有平台上的兼容性。 从下载到生产的快速旅程,能够在短短 5 分钟内运行。 访问所有功能的详细文档和示例,在整个开发过程中提供清晰度和指导。 一支专注的工程师团队提供每周 5 天的支持,随时为您解决任何问题,确保顺利的开发体验。 Iron Suite 提供 30 天无理由退款政策,提供信心和安心。 结论 总而言之,Blazor .NET 8.0 的发布标志着使用 C# 和 .NET 的全栈 Web UI 开发演变中的一个重要里程碑。 引入的新渲染模式,Blazor Web 应用模板,增强的导航,以及众多其他功能使其成为开发人员旨在创建现代和交互式 Web 应用程序的引人注目的选择。 Blazor .NET 8.0 还引入了吸引人的功能,如增强的表单处理、流式渲染和注入带键的服务的能力,为开发增添了深度和灵活性。 Iron Software 引入的 Iron Suite 补充了 Blazor 的功能,在 .NET 生态系统中为与文档相关的任务提供了全面的工具包。 Blazor .NET 8.0 通过利用 Iron Suite 赋予开发人员创建强大且功能丰富的 Web 应用程序的能力。 强大的功能、性能改进以及充满活力的开发者社区的支持,使 Blazor 成为现代 Web 开发的引人入胜的选择。 常见问题解答 如何在 Blazor 应用程序中将 HTML 转换为 PDF? 您可以在 Blazor 应用程序中使用 IronPDF 的 RenderHtmlAsPdf 方法将 HTML 字符串转换为 PDF。此方法兼容 Blazor Server 和 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 App 模板如何简化开发? Blazor Web App 模板在 .NET 8.0 中统一了 Blazor Server 和 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 改进了 WebAssembly 应用的调试,增强了符号数据下载,并增加了对 Firefox 的支持,简化了调试过程。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# KeyValuePair(开发者如何使用)BinaryKits.Zpl.Viewer(开发者...
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多