什么是 Razor ?
Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。
当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。
Razor 基于 ASP.NET,它为 web 应用程序的创建而设计。它拥有传统 ASP.NET 标记的能力,但更易使用,也更易学习。
1.ASP.NET Razor - C# 和 VB 代码语法
1.1 C# 的主要 Razor 语法规则
- Razor 代码封装于 @{ ... } 中
- 行内表达式(变量和函数)以 @ 开头
- 代码语句以分号结尾
- 字符串由引号包围
- C# 代码对大小写敏感
- C# 文件的扩展名是 .cshtml
1.2 VB 的主要 Razor 语法规则
- Razor 代码块被包围在 @Code ... End Code 中
- 行内表达式(变量和函数)以 @ 开头
- 以 Dim 关键词来声明变量
- 字符串由引号包围
- VB 对大小写不敏感
- VB 文件的扩展名是 .vbhtml
1.3 如何工作?
1.4 与对象打交道
"Date" 对象是典型的 ASP.NET 内建对象,但是也可以自行定义对象,一张网页,一个文本框,一个文件,或者一条数据库记录,等等。
对象可以拥有能够执行的方法。数据库记录可以提供“保存”方法,图像对象可以有“旋转”方法,电子邮件对象可以提供“发送”方法,以此类推。
对象也可以有描述其特点的属性。数据库记录可以有 FirstName 和 LastName 属性。
ASP.NET Date 对象拥有 Now 属性(写为 Date.Now),Now 属性有 Day 属性(写为 Date.Now.Day)。
1.5 If 和 Else 条件
1.6 读取用户输入
动态网页的另一个重要特性是读取用户的输入。
由 Request[] 函数读取输入,并由 IsPost 条件进行测试:
2.ASP.NET Razor - C# 变量
变量是用于存储数据的命名实体。
2.1 变量
变量用于存储数据。
变量名必须以字母字符开头,不能包含空格和保留字符。
变量可以是某个具体的类型,指示其所存储的数据类型。字符串变量存储字符串值 ("Hello World"),整数变量存储数值 (103),日期变量存储日期值,等等。
使用 var 关键词或类型对变量进行声明,不过 ASP.NET 通常能够自动确定数据的类型。
2.2 数据类型
类型 | 描述 | 实例 |
---|---|---|
int | 整数 | 103, 12, 5168 |
float | 浮点数 | 3.14, 3.4e38 |
decimal | 小数 | 1037.196543 |
bool | 逻辑值 | true, false |
string | 字符串值 | "Bill" |
2.3 运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 为变量赋值。 | i=6 |
|
|
|
|
|
|
== | 相等。如果值相等,则返回 true。 | if (i==10) |
!= | 不相等。如果值不相等,则返回 true。 | if (i!=10) |
|
|
|
+ | 字符串相加(级联或并置) | "w4" + "school" |
. | 点。分隔对象与方法。 | DateTime.Hour |
() | 括号。对值进行分组。 | (i+5) |
() | 括号。传递参数。 | x=Add(i,5) |
[] | 括号。访问数组或集合中的值。 | name[3] |
! | 非。反转 true 或 false。 | if (!ready) |
|
|
|
2.4 转换数据类型
将一种数据类型转换为另一种有时很有用。
大多数常见的例子是将字符串输入转换为另一种类型,比如整数或日期。
作为一项规则,用户输入会成为字符串,即使用户输入的是数字。所以,数字输入值在用于计算之前必须被转换为数字。
下面是常用的转换方法列表:
方法 | 描述 | 实例 |
---|---|---|
| 把字符串转换为整数。 | if (myString.IsInt()) {myInt=myString.AsInt();} |
| 把字符串转换为浮点数。 | if (myString.IsFloat()) {myFloat=myString.AsFloat();} |
| 把字符串转换为十进制数。 | if (myString.IsDecimal()) {myDec=myString.AsDecimal();} |
| 把字符串转换为 ASP.NET DateTime 类型 | myString="10/10/2012"; myDate=myString.AsDateTime(); |
| 把字符串转换为逻辑值。 | myString="True"; myBool=myString.AsBool(); |
ToString() | 把任意数据类型转换为字符串。 | myInt=1234; myString=myInt.ToString(); |
3.ASP.NET Razor - C# 循环和数组
3.1 For 循环
3.2 For Each 循环
如果需要处理集合或数组,则通常要用到 for each 循环。
集合是一组相似的对象,for each 循环允许在每个项目上执行一次任务。for each 循环会遍历集合直到完成为止。
3.3 While 循环
while 循环以关键词 while 开始,后面跟括号,其中定义循环持续的长度,然后是要循环的代码块。
while 循环通常会对用于计数的变量进行增减。
3.4 数组
如果您需要存储相似的变量,但又不希望为每个项目创建独立的变量,那么数组就派上用场了
4.ASP.NET Razor - C# 逻辑条件
4.1 If 条件
4.2 Else 条件
4.3 Else If 条件
4.4 Switch 条件
switch 代码块可为其余的情况设置默认的 case (default:),允许在所有 case 均不为 true 时执行代码。
5.ASP.NET Razor - VB 变量
5.1变量
变量用于存储数据。
变量的名称必须以字母字符开头,并且不能包含空格和保留字符。
变量可以是某个具体的类型,指示其所存储的数据类型。字符串变量存储字符串值 ("Hello World"),整数变量存储数值 (103),日期变量存储日期值,等等。
使用 Dim 关键词或类型对变量进行声明,不过 ASP.NET 通常能够自动确定数据的类型。
数据类型
类型 | 描述 | 实例 |
---|---|---|
integer | 整数 | 103, 12, 5168 |
double | 64 位浮点数 | 3.14, 3.4e38 |
decimal | 小数 | 1037.196543 |
boolean | 逻辑值 | true, false |
string | 字符串值 | "Bill" |
运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 为变量赋值。 | i=6 |
|
|
|
|
|
|
= | 相等。如果值相等,则返回 true。 | if i=10 |
<> | 不相等。如果值不相等,则返回 true。 | if <>10 |
|
|
|
& | 字符串相加(级联或并置) | "w4" & "schools" |
. | 点。分隔对象与方法。 | DateTime.Hour |
() | 括号。对值进行分组。 | (i+5) |
() | 括号。传递参数。 | x=Add(i,5) |
() | 括号。访问数组或集合中的值。 | name(3) |
Not | 非。反转 true 或 false。 | if Not ready |
|
|
|
|
|
|