首页/文章/ 详情

什么是Razor?

1年前浏览784

Razor是一种将基于服务器的代码嵌入到网页中的标记语法,即其可以在网页渲染时执行服务器端的代码(比如C#编写的数据库访问代码),从而实现复杂的、动态的网页。

Razor不是一种语言,而是一种服务器端标记语言!它的存在只是在HTML代码中,通过一种标记标明接下来的一段代码是服务器端代码,以C#为例,将采用@符号标明接下来的代码是集成在HTML中的C#代码,Razor将运行这段C#代码并在HTML中呈现最终的结果。

Razor语法包含三个部分:Razor标记+C#(或VB)+HTML!

Razor的集成C#的标记为@:当@后面跟着Razor的保留关键字的时候,它会被解析为Razor的特定标记;当@后面跟着的不是Razor保留关键字时,则被解析为纯的C#代码;当@作为邮箱的标识符的时候,其将被忽略.

Razor保留关键字(page、namespace、functions、inherit、model、section、helper等)需要通过 @(Razor Keyword) (进行转义,例如 @(functions));

C#的Razor关键字(case、do、default、for、foreach、if、else、lock、switch、try、catch、finally、using、while等)必须用 @(@C# Razor Keyword) (进行双转义,例如 @(@case)) 。 第一个 @ 转义 Razor 分析器。 第二个 @ 对 C# 分析器转义。

Razor隐式表达式:用@开头直接跟着C#的代码,如<p>@DateTime.Now</p> 但是这段C#代码不能有空格(唯一特例await),再者也不能包含泛型(因为泛型的尖括号<>会被解析为HTML的标记),由于隐式表达容易引起错误,个人推荐显示表达。

Razor显式表达式:用@()表达,将C#的代码卸载小括号内,例如<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p>,对于显示表达式,可以使用空格和泛型,

Razor的@标识符后面,如果想使用HTML标记,需要增加Html.Raw,例如:Html.Raw("<span>Hello World</span>"),但是需要注意,Html.Raw存在安全风险,应该尽力避免。

Razor后用{}包含代码块,如定义一个C#变量或者函数等,其中的C#代码将不被显示,其中定义的变量,可以在后文用显示或者隐式的表达式,进行展示。

Razor代码块中的默认语言是C#,但是可以Razor可以转回为HTML。(隐式转换)

Razor代码块中,若要定义应呈现 HTML 的代码块的子节,需要将字符括在标记后 Razor <text>,但是只有在<text>之间的内容会被呈现为HTML 。(标记显式转换)

Razor代码块中,要以 HTML 形式呈现整个行的其余内容,请使用 @: 语法。(标记整行转换)

Razor条件控制结构@if, else if, else, @switch。

Razor循环控制结构@for, @foreach, @while,  @do while。

Razor 支持 c # 和 HTML 注释。

Razor 指令由带有符号后的保留关键字的隐式表达式表示 @ 。 指令通常用于更改视图分析方式或启用不同的功能。

——恒拱学习笔记 20210429


来源:CATIA模具设计应用
控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-29
最近编辑:1年前
恒拱
硕士 签名征集中
获赞 26粉丝 52文章 652课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈