首页 > 编程语言 >ASP.NET Core 的 Razor 语法参考

ASP.NET Core 的 Razor 语法参考

时间:2024-06-03 18:44:57浏览次数:24  
标签:Core ASP Razor C# 标记 DateTime HTML 表达式

原文链接:https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-8.0

Razor 是一种标记语法,用于将基于 .NET 的代码嵌入网页中。 Razor 语法由 Razor 标记、C# 和 HTML 组成。 包含 Razor 的文件通常具有 .cshtml 文件扩展名。 也可在 Razor 组件 文件 (.razor) 中找到 Razor。 Razor 语法类似于各种 JavaScript 单页应用程序 (SPA) 框架(如 Angular、React、VueJs 和 Svelte)的模板化引擎。

 

Razor 支持 C#,并使用 @ 符号从 HTML 转换为 C#。若要对 Razor 标记中的 @ 符号进行转义,请使用另一个 @ 符号:<p>@@Username</p>

包含电子邮件地址的 HTML 属性和内容不将 @ 符号视为转换字符。 Razor 分析不会处理以下示例中的电子邮件地址:

 

隐式 Razor 表达式以 @ 开头,后跟 C# 代码:

<p>@DateTime.Now</p>
<p>@DateTime.IsLeapYear(2016)</p>

 

隐式表达式不能包含空格,但 C# await 关键字除外。 如果该 C# 语句具有明确的结束标记,则可以混用空格:

<p>@await DoSomething("hello", "world")</p>

 

隐式表达式不能包含 C# 泛型,因为括号 (<>) 内的字符会被解释为 HTML 标记。 以下代码无效:

<p>@GenericMethod<int>()</p>

 

显式 Razor 表达式由 @ 符号和平衡圆括号组成。 若要呈现上一周的时间,可使用以下 Razor 标记:

<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p>

 

将计算 @() 括号中的所有内容,并将其呈现到输出中。

前面部分中所述的隐式表达式通常不能包含空格。 在下面的代码中,不会从当前时间减去一周:

<p>Last week: @DateTime.Now - TimeSpan.FromDays(7)</p>

该代码呈现以下 HTML:

<p>Last week: 7/7/2016 4:39:52 PM - TimeSpan.FromDays(7)</p>

可以使用显式表达式将文本与表达式结果串联起来:

@{
    var joe = new Person("Joe", 33);
}

<p>Age@(joe.Age)</p>

  

标签:Core,ASP,Razor,C#,标记,DateTime,HTML,表达式
From: https://www.cnblogs.com/Dongmy/p/18229434

相关文章

  • OWASP API Security Top 10解读
    数字经济时代,无论是互联网商业创新还是传统企业数字化转型,都在推动API数量与应用范围的爆发式增长。从只用于企业内部服务调用的1.0时代,到面向服务架构的2.0时代,再到如今成为开放平台和云原生微服务的3.0时代,API正在成为数字世界的基础设施,在企业的业务体系中发挥着越来越重要......
  • .cshtml文件是什么文件,与aspx的区别是什么
    原文链接:https://m.imooc.com/wenda/detail/550239cshtml是MVC3之后新增的视图文件,跟原先的aspx很相似。区别主要在于二者的解释引擎不同。aspx采用的是WebFormEngine,而cshtml则是RazorRenderingEngine。引擎的变化直接导致语法发生变化。aspx中我们经常使用<%te......
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用后端框架
    1.项目介绍该项目是基于.net8开发的Asp.NetCoreWebApi后端服务,集成了Efcore,Autofac,Jwt,AutoMapper,Serilog,Quartz,MiniExcel等组件。该框架简单易上手,没有额外的学习成本;该项目采用了多层结构设计,有利于解耦,包含公共层,领域层,协约层,应用层,ORM层,Api层; #2.项目......
  • core swagger 参数验证
    1.FileTypeDto实体类添加属性Required///<summary>///分类名称///</summary>[Required(ErrorMessage="分类名称不能为空")]publicstringTypeName{get;set;}    //参数验证示例    /*    [Val......
  • .NET Core IServiceCollection注入 拓展方法
    一般注入比较麻烦,可以不依赖第三方组件命名空间注入usingMicrosoft.Extensions.DependencyInjection;usingNewtonsoft.Json;usingSystem.Reflection;publicstaticclassServiceCollectionExtensions{publicstaticIServiceCollectionAddTransientFromNames......
  • 推荐一个Github上收集了大量的C#/.NET/.NET Core项目宝库组织
    项目宝库介绍为.NET开发者提供一个寻找优秀C#/.NET/.NETCore项目和框架的入口,通过了解和对比更多的项目和框架来选择最适合我们自己学习、工作开发的一套项目或者框架。优秀的项目不应该被埋没,欢迎大家一起加入这个组织共同完善、发展.NET社区!这些都是非常优秀的项目和框架,排......
  • [DotNetGuide]C#/.NET/.NET Core优秀项目和框架精选
    前言注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯......
  • 发布到win11本地k8s集群Aspire项目
    Aspire项目发布到win11本地k8s集群 合集-微服务(3) 1.微服务新体验之Aspire初体验05-302.Aspire项目发布到win11本地k8s集群05-313.微服务实践Aspire项目发布到远程k8s集群06-01收起 前提你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验As......
  • 在不受支持的 Mac 上安装 macOS Sonoma (OpenCore Legacy Patcher v1.5.0)
    在不受支持的Mac上安装macOSSonoma(OpenCoreLegacyPatcherv1.5.0)InstallmacOSonunsupportedMacs请访问原文链接:https://sysin.org/blog/install-macos-on-unsupported-mac/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org历时两个月,OpenCoreLegacyPat......
  • 使用 .NET Core 实现微服务(带例子)
    使用.NETCore实现微服务使用.NETCore实现微服务架构涉及几个关键步骤,包括服务划分、API网关、服务通信和容器化部署。下面是一个简化的示例,展示如何使用.NETCore实现一个基本的微服务架构。步骤1:创建独立的微服务定义微服务每个微服务都是一个独立的ASP.NE......