Razor

Razor 是一种标记语法,可以让您将基于服务器的代码(如 Visual Basic 和 C#)嵌入到网页中。它主要用于 ASP.NET 框架下,用于创建动态 Web 应用程序。Razor 的目标是简化开发,使得服务器端代码和 HTML 标记能够自然地融合在一起。

基于服务器的代码会在网页传送给浏览器之前被服务器执行,这样可以创建动态内容。通过这种方式,开发者可以在服务器端执行复杂的任务,如数据库访问和数据处理,然后将结果以 HTML 的形式发送到客户端浏览器。

语法

Razor 语法与 PHP 和经典 ASP 类似,但它更紧密地与 .NET 语言集成。以下是 Razor、PHP 和经典 ASP 的对比示例:

Razor 示例

1
2
3
4
5
<ul>
@for (int i = 0; i < 10; i++) {
<li>@i</li>
}
</ul>

PHP 示例

1
2
3
4
5
6
7
<ul>
<?php
for ($i = 0; i < 10; i++) {
echo("<li>$i</li>");
}
?>
</ul>

Web Forms(经典 ASP)示例

1
2
3
4
5
<ul>
<% for (int i = 0; i < 10; i++) { %>
<li><% =i %></li>
<% } %>
</ul>

Razor 帮助器

Razor 帮助器是一些通过简单的 Razor 代码即可调用的组件,它们可以简化常见的 Web 开发任务。您可以使用 Razor 语法构建自己的帮助器,也可以使用内置的 ASP.NET 帮助器。以下是一些常用的 Razor 帮助器:

  • Web Grid(Web 网格):用于显示数据表格。
  • Web Graphics(Web 图形):用于生成图形和图表。
  • Google Analytics(Google 分析):集成 Google 分析工具。
  • Facebook Integration(Facebook 集成):用于集成 Facebook 的功能。
  • Twitter Integration(Twitter 集成):用于集成 Twitter 的功能。
  • Sending Email(发送电子邮件):用于发送电子邮件。
  • Validation(验证):用于表单验证。

Razor 支持的编程语言

Razor 支持两种主要的 .NET 语言:C# (C sharp) 和 VB (Visual Basic)。

C# 示例

1
2
3
4
5
6
7
@{
var message = "Hello, World!";
var currentDate = DateTime.Now;
}

<h1>@message</h1>
<p>Current date and time: @currentDate</p>

VB 示例

1
2
3
4
5
6
7
@Code
Dim message As String = "Hello, World!"
Dim currentDate As DateTime = DateTime.Now
End Code

<h1>@message</h1>
<p>Current date and time: @currentDate</p>

ASP.NET Razor 语法与代码示例

Razor 支持两种主要的 .NET 语言:C# 和 VB (Visual Basic)。以下是它们的语法和一些代码示例。

Razor 语法 - C

Razor 语法中的 C# 代码通常用 @ 符号引导,嵌入在 HTML 标记中。使用 {} 包裹多行代码块。

C# 示例 1:基本变量与表达式

1
2
3
4
5
6
7
@{
var message = "Hello, World!";
var currentDate = DateTime.Now;
}

<h1>@message</h1>
<p>Current date and time: @currentDate</p>

C# 示例 2:条件语句

1
2
3
4
5
6
7
8
9
@{
var isAuthenticated = true; // 示例条件
}

@if (isAuthenticated) {
<p>Welcome, authenticated user!</p>
} else {
<p>Please log in.</p>
}

C# 示例 3:循环

1
2
3
4
5
<ul>
@for (int i = 1; i <= 5; i++) {
<li>Item @i</li>
}
</ul>

C# 示例 4:使用帮助器

1
2
3
4
5
6
7
8
9
@{
var items = new List<string> { "Apple", "Banana", "Cherry" };
}

<ul>
@foreach (var item in items) {
<li>@item</li>
}
</ul>

Razor 语法 - VB

在 Razor 中使用 VB 时,代码通常用 @Code ... End Code 包裹,并且内嵌的代码块用 @ 符号引导。

VB 示例 1:基本变量与表达式

1
2
3
4
5
6
7
@Code
Dim message As String = "Hello, World!"
Dim currentDate As DateTime = DateTime.Now
End Code

<h1>@message</h1>
<p>Current date and time: @currentDate</p>

VB 示例 2:条件语句

1
2
3
4
5
6
7
8
9
@Code
Dim isAuthenticated As Boolean = True ' 示例条件
End Code

@if isAuthenticated Then
<p>Welcome, authenticated user!</p>
Else
<p>Please log in.</p>
End If

VB 示例 3:循环

1
2
3
4
5
6
7
<ul>
@Code
For i As Integer = 1 To 5
@<li>Item @i</li>
Next
End Code
</ul>

VB 示例 4:使用帮助器

1
2
3
4
5
6
7
8
9
@Code
Dim items As New List(Of String) From { "Apple", "Banana", "Cherry" }
End Code

<ul>
@For Each item As String In items
@<li>@item</li>
Next
</ul>

工作原理

Razor 是一种用于 ASP.NET 的视图引擎,允许开发者将 C# 或 VB 代码与 HTML 标记混合在一起,以生成动态网页。它通过以下步骤实现其功能:

1. 编写 Razor 页面

开发者编写包含 Razor 语法的视图文件,这些文件通常具有 .cshtml.vbhtml 扩展名。这些视图文件包含 HTML 和嵌入的服务器端代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@{
var message = "Hello, Razor!";
var currentTime = DateTime.Now;
}

<!DOCTYPE html>
<html>
<head>
<title>Razor Example</title>
</head>
<body>
<h1>@message</h1>
<p>Current time: @currentTime</p>
</body>
</html>

2. 请求页面

当客户端请求一个 Razor 页面时,ASP.NET 会处理这个请求。ASP.NET MVC 或 ASP.NET Core MVC 框架会定位到相应的控制器和动作方法,返回一个视图结果。

3. Razor 视图引擎处理

Razor 视图引擎接收视图文件并将其转换为一个 C# 类。这个类实现了 IRazorPage 接口,并包含了生成 HTML 的逻辑。

代码生成示例

Razor 视图引擎会将上述示例页面转换为类似以下的 C# 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class RazorPage : IRazorPage
{
public void Execute()
{
var message = "Hello, Razor!";
var currentTime = DateTime.Now;

WriteLiteral("<!DOCTYPE html>\n<html>\n<head>\n <title>Razor Example</title>\n</head>\n<body>\n <h1>");
Write(message);
WriteLiteral("</h1>\n <p>Current time: ");
Write(currentTime);
WriteLiteral("</p>\n</body>\n</html>");
}
}

4. 编译和执行

转换后的 C# 类会被编译成一个程序集。在运行时,这个程序集被加载到应用程序中。ASP.NET 会执行这个类的 Execute 方法,生成 HTML 内容。

5. 返回 HTML 内容

生成的 HTML 内容会被传递回 ASP.NET 管道,并最终发送到客户端浏览器。浏览器接收到 HTML 后,解析并呈现网页。

原理总结

  1. 编写视图:开发者编写包含 Razor 语法的视图文件。
  2. 请求处理:客户端请求被路由到相应的控制器和动作方法。
  3. 视图引擎处理:Razor 视图引擎将视图文件转换为 C# 类,并生成 HTML。
  4. 编译执行:转换后的 C# 类被编译并执行,生成最终的 HTML 内容。
  5. 返回 HTML:生成的 HTML 被发送到客户端浏览器进行渲染。

优势

  • 简洁性:Razor 语法简洁明了,便于编写和阅读。
  • 灵活性:可以轻松嵌入 C# 或 VB 代码来生成动态内容。
  • 性能:Razor 引擎经过优化,生成的代码高效执行。

通过这些步骤,Razor 实现了将服务器端代码与 HTML 标记的无缝集成,帮助开发者创建功能丰富的动态网页。


C# 变量

变量

变量是用来存储数据的命名实体。一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。变量可以存储不同类型的数据,如字符串、整数、日期等。

声明变量

变量可以使用 var 关键字声明,或者使用具体的数据类型声明。

1
2
3
4
5
6
7
var greeting = "Welcome to RUNOOB.COM";
var counter = 103;
var today = DateTime.Today;

string greeting = "Welcome to RUNOOB.COM";
int counter = 103;
DateTime today = DateTime.Today;

数据类型

常用的数据类型如下:

类型 描述 示例
int 整数(全数字) 103, 12, 5168
float 浮点数 3.14, 3.4e38
decimal 十进制数字(高精度) 1037.196543
bool 布尔值 true, false
string 字符串 "Hello RUNOOB.COM", "John"

运算符

运算符告诉 ASP.NET 在表达式中执行什么样的操作。常用的运算符如下:

运算符 描述 示例
= 给一个变量赋值 i = 6
+ 加上一个值或者一个变量 i = 5 + 5
- 减去一个值或者一个变量 i = 5 - 5
* 乘以一个值或者一个变量 i = 5 * 5
/ 除以一个值或者一个变量 i = 5 / 5
+= 变量递增 i += 1
-= 变量递减 i -= 1
== 相等。如果值相等则返回 true if (i == 10)
!= 不等。如果值不等则返回 true if (i != 10)
< 小于 if (i < 10)
> 大于 if (i > 10)
<= 小于等于 if (i <= 10)
>= 大于等于 if (i >= 10)
+ 连接字符串 "run" + "oob"
. 点号。分隔对象和方法 DateTime.Hour
() 圆括号。将值进行分组 (i + 5)
() 圆括号。传递参数 x = Add(i, 5)
[] 中括号。访问数组或者集合的值 name[3]
! 非。真/假取反 if (!ready)
&& 逻辑与 if (ready && clear)

转换数据类型

从一种数据类型转换到另一种数据类型,有时是很有用的。最常见的例子是将字符串输入转换为另一种类型,如整数或者日期。

常用的转换方法

方法 描述 示例
AsInt() 转换字符串为整数 if (myString.IsInt()) { myInt = myString.AsInt(); }
IsInt() 判断字符串是否为整数
AsFloat() 转换字符串为浮点数 if (myString.IsFloat()) { myFloat = myString.AsFloat(); }
IsFloat() 判断字符串是否为浮点数
AsDecimal() 转换字符串为十进制数 if (myString.IsDecimal()) { myDec = myString.AsDecimal(); }
IsDecimal() 判断字符串是否为十进制数
AsDateTime() 转换字符串为 DateTime 类型 myString = "10/10/2012"; myDate = myString.AsDateTime();
IsDateTime() 判断字符串是否为 DateTime 类型
AsBool() 转换字符串为布尔值 myString = "True"; myBool = myString.AsBool();
IsBool() 判断字符串是否为布尔值
ToString() 转换任何数据类型为字符串 myInt = 1234; myString = myInt.ToString();

C# 循环和数组

循环

循环用于重复执行代码块。C# 提供了多种循环结构,常用的有 forforeachwhiledo-while

for 循环

for 循环用于执行已知次数的重复操作。

1
2
3
4
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}

foreach 循环

foreach 循环用于遍历集合或数组中的每个元素。

1
2
3
4
5
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
Console.WriteLine(number);
}

while 循环

while 循环在条件为 true 时重复执行代码块。

1
2
3
4
5
6
int i = 0;
while (i < 10)
{
Console.WriteLine(i);
i++;
}

do-while 循环

do-while 循环先执行代码块,然后在条件为 true 时继续重复。

1
2
3
4
5
6
int i = 0;
do
{
Console.WriteLine(i);
i++;
} while (i < 10);

数组

数组用于存储同一类型的元素的集合。可以是单维、多维或交错数组。

声明和初始化数组

单维数组:

1
2
3
4
5
int[] numbers = new int[5]; // 声明一个包含 5 个元素的数组
numbers[0] = 1;
numbers[1] = 2;
// 或者
int[] numbers = { 1, 2, 3, 4, 5 }; // 声明并初始化数组

多维数组:

1
2
3
4
5
int[,] matrix = new int[3, 3]; // 声明一个 3x3 的二维数组
matrix[0, 0] = 1;
matrix[0, 1] = 2;
// 或者
int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // 声明并初始化二维数组

交错数组(数组的数组):

1
2
3
4
int[][] jaggedArray = new int[3][]; // 声明一个交错数组,包含 3 个数组
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };

示例代码

结合循环和数组的示例,展示如何使用 for 循环和 foreach 循环遍历数组:

使用 for 循环遍历数组

1
2
3
4
5
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}

使用 foreach 循环遍历数组

1
2
3
4
5
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
Console.WriteLine(number);
}

在 Razor 页面中的使用示例

使用 for 循环

1
2
3
4
5
6
7
8
9
10
11
12
13
@page
@{
ViewData["Title"] = "For Loop Example";
int[] numbers = { 1, 2, 3, 4, 5 };
}

<h1>For Loop Example</h1>
<ul>
@for (int i = 0; i < numbers.Length; i++)
{
<li>@numbers[i]</li>
}
</ul>

使用 foreach 循环

1
2
3
4
5
6
7
8
9
10
11
12
13
@page
@{
ViewData["Title"] = "Foreach Loop Example";
int[] numbers = { 1, 2, 3, 4, 5 };
}

<h1>Foreach Loop Example</h1>
<ul>
@foreach (int number in numbers)
{
<li>@number</li>
}
</ul>

C# 逻辑条件

逻辑条件

逻辑条件用于控制程序的流向,决定某些代码块是否执行。常见的条件结构有 ifelse ifelseswitch

if 语句

if 语句用于在条件为 true 时执行代码块。

1
2
3
4
5
int a = 10;
if (a > 5)
{
Console.WriteLine("a is greater than 5");
}

else if 语句

else if 语句用于在前一个条件为 false 且当前条件为 true 时执行代码块。

1
2
3
4
5
6
7
8
9
int a = 10;
if (a > 10)
{
Console.WriteLine("a is greater than 10");
}
else if (a == 10)
{
Console.WriteLine("a is equal to 10");
}

else 语句

else 语句用于在所有前置条件为 false 时执行代码块。

1
2
3
4
5
6
7
8
9
10
11
12
13
int a = 10;
if (a > 10)
{
Console.WriteLine("a is greater than 10");
}
else if (a == 10)
{
Console.WriteLine("a is equal to 10");
}
else
{
Console.WriteLine("a is less than 10");
}

switch 语句

switch 语句用于基于变量的值执行多个代码块之一。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
default:
Console.WriteLine("Another day");
break;
}

逻辑运算符

逻辑运算符用于连接和操作布尔表达式。

运算符 描述 示例
&& 逻辑与,两个条件都为真 if (a > 5 && b < 10)
|| 逻辑或,任一条件为真 if (a > 5
! 逻辑非,将条件取反 if (!isReady)
== 等于,比较两个值是否相等 if (a == b)
!= 不等于,比较两个值是否不等 if (a != b)
< 小于,左边的值小于右边的值 if (a < b)
> 大于,左边的值大于右边的值 if (a > b)
<= 小于等于,左边的值小于或等于右边的值 if (a <= b)
>= 大于等于,左边的值大于或等于右边的值 if (a >= b)

示例代码

以下是一些使用逻辑条件的示例代码:

if 语句示例

1
2
3
4
5
6
7
8
9
int age = 18;
if (age >= 18)
{
Console.WriteLine("You are an adult.");
}
else
{
Console.WriteLine("You are a minor.");
}

switch 语句示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int month = 8;
string monthName;
switch (month)
{
case 1:
monthName = "January";
break;
case 2:
monthName = "February";
break;
case 3:
monthName = "March";
break;
case 4:
monthName = "April";
break;
case 5:
monthName = "May";
break;
case 6:
monthName = "June";
break;
case 7:
monthName = "July";
break;
case 8:
monthName = "August";
break;
case 9:
monthName = "September";
break;
case 10:
monthName = "October";
break;
case 11:
monthName = "November";
break;
case 12:
monthName = "December";
break;
default:
monthName = "Invalid month";
break;
}
Console.WriteLine(monthName);

在 Razor 页面中的使用示例

使用 if-else 语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@page
@{
ViewData["Title"] = "If-Else Example";
int number = 10;
}

<h1>If-Else Example</h1>
<p>
@if (number > 5)
{
<text>The number is greater than 5.</text>
}
else
{
<text>The number is 5 or less.</text>
}
</p>

使用 switch 语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@page
@{
ViewData["Title"] = "Switch Example";
int day = 3;
string dayName;
switch (day)
{
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
case 3:
dayName = "Wednesday";
break;
case 4:
dayName = "Thursday";
break;
case 5:
dayName = "Friday";
break;
case 6:
dayName = "Saturday";
break;
case 7:
dayName = "Sunday";
break;
default:
dayName = "Invalid day";
break;
}
}

<h1>Switch Example</h1>
<p>Today is @dayName.</p>

ASP.NET Razor - VB 变量

变量

变量是用来存储数据的命名实体。一个变量的名称必须以字母字符开头,并且不能包含空格或者保留字符。变量可以存储不同类型的数据,如字符串、整数、日期等。

声明变量

变量可以使用 Dim 关键字声明,并且可以指定变量的数据类型。

1
2
3
4
' Using the Dim keyword:
Dim greeting As String = "Welcome to RUNOOB.COM"
Dim counter As Integer = 103
Dim today As DateTime = DateTime.Today

数据类型

常用的数据类型如下:

类型 描述 示例
Integer 整数(全数字) 103, 12, 5168
Single 单精度浮点数 3.14, 3.4E38
Double 双精度浮点数 3.14, 3.4E38
Decimal 十进制数字(高精度) 1037.196543
Boolean 布尔值 True, False
String 字符串 "Hello RUNOOB.COM", "John"
Date 日期和时间 #10/10/2012#, #12:00:00 PM#

运算符

运算符告诉 ASP.NET 在表达式中执行什么样的操作。常用的运算符如下:

运算符 描述 示例
= 给一个变量赋值 i = 6
+ 加上一个值或者一个变量 i = 5 + 5
- 减去一个值或者一个变量 i = 5 - 5
* 乘以一个值或者一个变量 i = 5 * 5
/ 除以一个值或者一个变量 i = 5 / 5
+= 变量递增 i += 1
-= 变量递减 i -= 1
= 相等。如果值相等则返回 True If i = 10 Then
<> 不等。如果值不等则返回 True If i <> 10 Then
< 小于 If i < 10 Then
> 大于 If i > 10 Then
<= 小于等于 If i <= 10 Then
>= 大于等于 If i >= 10 Then
& 连接字符串 "run" & "oob"
. 点号。分隔对象和方法 DateTime.Now.Hour
() 圆括号。将值进行分组 (i + 5)
() 圆括号。传递参数 x = Add(i, 5)
[] 中括号。访问数组或者集合的值 name(3)
Not 非。真/假取反 If Not ready Then
AndAlso 逻辑与 If ready AndAlso clear
OrElse 逻辑或 If ready OrElse clear

转换数据类型

从一种数据类型转换到另一种数据类型,有时是很有用的。最常见的例子是将字符串输入转换为另一种类型,如整数或者日期。

常用的转换方法

方法 描述 示例
CInt() 转换字符串为整数 If IsNumeric(myString) Then myInt = CInt(myString) End If
CSng() 转换字符串为单精度浮点数 If IsNumeric(myString) Then myFloat = CSng(myString) End If
CDec() 转换字符串为十进制数 If IsNumeric(myString) Then myDec = CDec(myString) End If
CDate() 转换字符串为 Date 类型 myString = "10/10/2012" : myDate = CDate(myString)
CBool() 转换字符串为布尔值 myString = "True" : myBool = CBool(myString)
CStr() 转换任何数据类型为字符串 myInt = 1234 : myString = CStr(myInt)

示例代码

以下是一些使用变量和运算符的示例代码:

声明和使用变量

1
2
3
4
5
6
7
8
9
10
11
Dim message As String = "Hello, World!"
Dim count As Integer = 5
Dim price As Decimal = 19.95D
Dim today As Date = DateTime.Now
Dim isReady As Boolean = True

Console.WriteLine(message)
Console.WriteLine(count)
Console.WriteLine(price)
Console.WriteLine(today)
Console.WriteLine(isReady)

在 Razor 页面中的使用示例

使用变量和数据类型

1
2
3
4
5
6
7
8
9
10
11
12
@Page
@{
ViewData("Title") = "VB Variables Example"
Dim greeting As String = "Welcome to RUNOOB.COM"
Dim counter As Integer = 103
Dim today As Date = DateTime.Today
}

<h1>VB Variables Example</h1>
<p>@greeting</p>
<p>Counter: @counter</p>
<p>Today: @today.ToShortDateString()</p>

转换数据类型示例

1
2
3
4
5
6
7
8
9
10
@Page
@{
ViewData("Title") = "VB Data Conversion Example"
Dim myString As String = "1234"
Dim myInt As Integer = CInt(myString)
}

<h1>VB Data Conversion Example</h1>
<p>Original String: @myString</p>
<p>Converted Integer: @myInt</p>

ASP.NET Razor - VB 循环和数组

循环

循环用于重复执行代码块。VB 提供了多种循环结构,常用的有 ForFor EachWhileDo While

For 循环

For 循环用于执行已知次数的重复操作。

1
2
3
For i As Integer = 0 To 9
Console.WriteLine(i)
Next

For Each 循环

For Each 循环用于遍历集合或数组中的每个元素。

1
2
3
4
Dim numbers As Integer() = {1, 2, 3, 4, 5}
For Each number As Integer In numbers
Console.WriteLine(number)
Next

While 循环

While 循环在条件为 True 时重复执行代码块。

1
2
3
4
5
Dim i As Integer = 0
While i < 10
Console.WriteLine(i)
i += 1
End While

Do While 循环

Do While 循环先执行代码块,然后在条件为 True 时继续重复。

1
2
3
4
5
Dim i As Integer = 0
Do
Console.WriteLine(i)
i += 1
Loop While i < 10

数组

数组用于存储同一类型的元素的集合。可以是单维、多维或交错数组。

声明和初始化数组

单维数组:

1
2
3
4
5
Dim numbers(4) As Integer ' 声明一个包含 5 个元素的数组
numbers(0) = 1
numbers(1) = 2
' 或者
Dim numbers As Integer() = {1, 2, 3, 4, 5} ' 声明并初始化数组

多维数组:

1
2
3
4
5
Dim matrix(2, 2) As Integer ' 声明一个 3x3 的二维数组
matrix(0, 0) = 1
matrix(0, 1) = 2
' 或者
Dim matrix As Integer(,) = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} ' 声明并初始化二维数组

交错数组(数组的数组):

1
2
3
4
Dim jaggedArray As Integer()() = New Integer(2)() {} ' 声明一个交错数组,包含 3 个数组
jaggedArray(0) = New Integer() {1, 2}
jaggedArray(1) = New Integer() {3, 4, 5}
jaggedArray(2) = New Integer() {6, 7, 8, 9}

示例代码

结合循环和数组的示例,展示如何使用 For 循环和 For Each 循环遍历数组:

使用 For 循环遍历数组

1
2
3
4
Dim numbers As Integer() = {1, 2, 3, 4, 5}
For i As Integer = 0 To numbers.Length - 1
Console.WriteLine(numbers(i))
Next

使用 For Each 循环遍历数组

1
2
3
4
Dim numbers As Integer() = {1, 2, 3, 4, 5}
For Each number As Integer In numbers
Console.WriteLine(number)
Next

在 Razor 页面中的使用示例

使用 For 循环

1
2
3
4
5
6
7
8
9
10
11
12
@Page
@Code
ViewData("Title") = "For Loop Example"
Dim numbers As Integer() = {1, 2, 3, 4, 5}
End Code

<h1>For Loop Example</h1>
<ul>
@For i As Integer = 0 To numbers.Length - 1
<li>@numbers(i)</li>
Next
</ul>

使用 For Each 循环

1
2
3
4
5
6
7
8
9
10
11
12
@Page
@Code
ViewData("Title") = "For Each Loop Example"
Dim numbers As Integer() = {1, 2, 3, 4, 5}
End Code

<h1>For Each Loop Example</h1>
<ul>
@For Each number As Integer In numbers
<li>@number</li>
Next
</ul>

使用多维数组

在 Razor 页面中使用多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Page
@Code
ViewData("Title") = "Multi-dimensional Array Example"
Dim matrix As Integer(,) = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
End Code

<h1>Multi-dimensional Array Example</h1>
<table>
@For i As Integer = 0 To matrix.GetLength(0) - 1
<tr>
@For j As Integer = 0 To matrix.GetLength(1) - 1
<td>@matrix(i, j)</td>
Next
</tr>
Next
</table>

ASP.NET Razor - VB 逻辑条件

逻辑条件

逻辑条件用于控制程序的流向,决定某些代码块是否执行。常见的条件结构有 IfElseIfElseSelect Case

If 语句

If 语句用于在条件为 True 时执行代码块。

1
2
3
4
Dim age As Integer = 18
If age >= 18 Then
Console.WriteLine("You are an adult.")
End If

ElseIf 语句

ElseIf 语句用于在前一个条件为 False 且当前条件为 True 时执行代码块。

1
2
3
4
5
6
Dim age As Integer = 18
If age > 18 Then
Console.WriteLine("You are older than 18.")
ElseIf age = 18 Then
Console.WriteLine("You are exactly 18.")
End If

Else 语句

Else 语句用于在所有前置条件为 False 时执行代码块。

1
2
3
4
5
6
Dim age As Integer = 17
If age >= 18 Then
Console.WriteLine("You are an adult.")
Else
Console.WriteLine("You are not an adult.")
End If

Select Case 语句

Select Case 语句用于基于变量的值执行多个代码块之一。

1
2
3
4
5
6
7
8
9
10
11
Dim dayOfWeek As Integer = 3
Select Case dayOfWeek
Case 1
Console.WriteLine("Monday")
Case 2
Console.WriteLine("Tuesday")
Case 3
Console.WriteLine("Wednesday")
Case Else
Console.WriteLine("Other day")
End Select

逻辑运算符

逻辑运算符用于连接和操作布尔表达式。

运算符 描述
AndAlso 逻辑与
OrElse 逻辑或
Not 非。真/假取反
= 相等。如果值相等则返回 True
<> 不等。如果值不等则返回 True
< 小于
> 大于
<= 小于等于
>= 大于等于

示例代码

以下是一些使用逻辑条件的示例代码:

If 语句示例

1
2
3
4
5
6
7
8
Dim temperature As Integer = 25
If temperature > 30 Then
Console.WriteLine("It's hot outside.")
ElseIf temperature > 20 Then
Console.WriteLine("It's warm outside.")
Else
Console.WriteLine("It's cold outside.")
End If

Select Case 语句示例

1
2
3
4
5
6
7
8
9
10
11
Dim grade As String = "B"
Select Case grade
Case "A"
Console.WriteLine("Excellent")
Case "B"
Console.WriteLine("Good")
Case "C"
Console.WriteLine("Fair")
Case Else
Console.WriteLine("Needs improvement")
End Select

在 Razor 页面中的使用示例

使用 If-Else 语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Page
@Code
ViewData("Title") = "If-Else Example"
Dim age As Integer = 18
End Code

<h1>If-Else Example</h1>
<p>
@If age >= 18 Then
<text>You are an adult.</text>
Else
<text>You are not an adult yet.</text>
End If
</p>

使用 Select Case 语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Page
@Code
ViewData("Title") = "Select Case Example"
Dim dayOfWeek As Integer = 3
End Code

<h1>Select Case Example</h1>
<p>
@Select Case dayOfWeek
Case 1
<text>Monday</text>
Case 2
<text>Tuesday</text>
Case 3
<text>Wednesday</text>
Case Else
<text>Other day</text>
End Select
</p>

通过这些示例,您可以了解如何在 VB 中使用逻辑条件控制程序的执行流,并在 Razor 页面中动态生成内容。