Razor语法完全手册:掌握@指令、模板布局与Tag Helper的实用指南

发布时间:2026/7/28 6:40:41
Razor语法完全手册:掌握@指令、模板布局与Tag Helper的实用指南 Razor语法完全手册掌握指令、模板布局与Tag Helper的实用指南【免费下载链接】razorCompiler and tooling experience for Razor ASP.NET Core apps in Visual Studio and VS Code.项目地址: https://gitcode.com/gh_mirrors/razo/razorRazor是ASP.NET Core应用程序中用于创建动态Web页面的强大模板引擎它将HTML标记与C#代码无缝结合让开发者能够轻松构建交互式Web应用。本文将全面介绍Razor语法的核心概念包括指令、模板布局和Tag Helper的使用方法帮助你快速掌握这一必备技能。一、Razor基础符号的魔力 ✨在Razor中符号是连接HTML和C#代码的桥梁。它不仅用于标识C#代码块还能直接输出表达式结果。以下是几种常见用法1. 输出表达式p当前时间: DateTime.Now/p p欢迎消息: ($Hello, {User.Name}!)/p2. 代码块if (User.IsAuthenticated) { p欢迎回来User.Name/p } else { p请a href/login登录/a以继续/p }3. 循环结构ul foreach (var item in Model.Items) { liitem.Name - item.Price.ToString(C)/li } /ul二、必备指令构建页面基础 Razor提供了多种指令用于定义页面特性和行为。以下是最常用的几个1. page定义Razor页面用于标识Razor Pages文件指定页面路由page /products model ProductsModel提示在Razor Pages应用中每个.cshtml文件顶部都需要page指令2. model指定页面模型声明页面使用的模型类型使强类型视图成为可能model CustomerViewModel h1Model.CustomerName的订单/h13. inject依赖注入在视图中注入服务inject IEmailService EmailService button onclick(async () await EmailService.SendConfirmationAsync(Model.Email)) 发送确认邮件 /button4. addTagHelper引入Tag Helper启用Tag Helper功能扩展HTML元素的能力addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers form asp-actionCreate !-- 自动生成正确的表单action -- /form三、模板布局打造一致的页面结构 Razor提供了强大的布局系统确保网站各页面保持一致的外观和行为。1. 布局文件(_Layout.cshtml)定义网站的整体结构包括公共的头部、导航和页脚!DOCTYPE html html head titleViewData[Title] - 我的应用/title link relstylesheet href~/css/site.css / /head body header nav !-- 导航菜单 -- /nav /header main RenderBody() !-- 页面内容将在这里呈现 -- /main footer !-- 页脚内容 -- /footer /body /html2. inherits继承布局在视图中指定要使用的布局inherits LayoutComponentBase { Layout _Layout; }3. section定义页面区域在视图中定义可在布局中呈现的内容块section Scripts { script src~/js/product-details.js/script }在布局中使用RenderSection(Scripts)呈现这些内容。四、Tag Helper增强HTML元素 Tag Helper是Razor的强大功能它允许服务器端代码参与创建和呈现HTML元素。1. 内置Tag HelperASP.NET Core提供了多种内置Tag Helper如表单、链接和图像!-- 表单Tag Helper -- form asp-actionCreate asp-controllerProducts input asp-forProductName / span asp-validation-forProductName/span button typesubmit保存/button /form !-- 链接Tag Helper -- a asp-actionDetails asp-route-id123查看详情/a2. 视图组件Tag Helper使用vc:前缀调用视图组件addTagHelper *, MyApp vc:product-card productModel.FeaturedProduct / vc:cart-summary countModel.CartItems.Count /3. 自定义Tag Helper创建自己的Tag Helper以扩展HTML功能。例如创建一个格式化日期的Tag Helper[HtmlTargetElement(date-format)] public class DateFormatTagHelper : TagHelper { public DateTime Value { get; set; } public string Format { get; set; } yyyy-MM-dd; public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName span; output.Content.SetContent(Value.ToString(Format)); } }使用自定义Tag HelperaddTagHelper *, MyApp date-format valueDateTime.Now formatyyyy年MM月dd日/date-format五、Razor开发最佳实践 1. 代码组织将复杂逻辑放在视图模型或服务中保持视图简洁使用局部视图(Html.Partial)重用UI组件利用_ViewImports.cshtml引入常用命名空间和Tag Helper2. 性能优化使用model强类型视图避免类型转换利用inject注入服务而非直接在视图中实例化合理使用缓存标签助手cache减少重复计算3. 可维护性保持视图专注于UI呈现避免复杂业务逻辑使用布局和部分视图确保一致的UI遵循DRY原则提取可重用组件Razor项目典型文件结构展示包含布局、页面和视图组件六、快速入门开始使用Razor要开始使用Razor开发ASP.NET Core应用只需按照以下步骤操作克隆仓库git clone https://gitcode.com/gh_mirrors/razo/razor探索示例代码Razor语法示例src/Razor/benchmarks/testapps/ComponentApp/Components/Pages/FormattingTest.razor布局示例src/Compiler/perf/Microsoft.AspNetCore.Razor.Microbenchmarks.Generator/SampleApp/Shared/MainLayout.razorTag Helper示例src/Compiler/Microsoft.AspNetCore.Mvc.Razor.Extensions/test/TestFiles/IntegrationTests/CodeGenerationIntegrationTest/ViewComponentTagHelperOptionalParam.cshtml参考官方文档docs/Onboarding Docs/01_Razor_Basics.md通过本文的介绍你已经掌握了Razor语法的核心概念和使用方法。无论是构建简单的网页还是复杂的Web应用Razor都能帮助你高效地创建动态、交互式的用户界面。开始动手实践体验Razor带来的开发乐趣吧【免费下载链接】razorCompiler and tooling experience for Razor ASP.NET Core apps in Visual Studio and VS Code.项目地址: https://gitcode.com/gh_mirrors/razo/razor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考