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>
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
后,解析并呈现网页。
原理总结
编写视图 :开发者编写包含 Razor
语法的视图文件。
请求处理 :客户端请求被路由到相应的控制器和动作方法。
视图引擎处理 :Razor 视图引擎将视图文件转换为 C#
类,并生成 HTML。
编译执行 :转换后的 C# 类被编译并执行,生成最终的
HTML 内容。
返回 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# 提供了多种循环结构,常用的有
for
、foreach
、while
和
do-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 ]; numbers[0 ] = 1 ; numbers[1 ] = 2 ; int [] numbers = { 1 , 2 , 3 , 4 , 5 };
多维数组:
1 2 3 4 5 int [,] matrix = new int [3 , 3 ]; 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 ][]; 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# 逻辑条件
逻辑条件
逻辑条件用于控制程序的流向,决定某些代码块是否执行。常见的条件结构有
if
、else if
、else
和
switch
。
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 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.NowDim 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 提供了多种循环结构,常用的有
For
、For Each
、While
和
Do 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 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 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 )() {} 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 逻辑条件
逻辑条件
逻辑条件用于控制程序的流向,决定某些代码块是否执行。常见的条件结构有
If
、ElseIf
、Else
和
Select 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 页面中动态生成内容。