Razor 是一种用于在 ASP.NET 中创建动态网页的标记语法,它将服务器代码(如 C# 或 VB.NET)与 HTML 融合在一起,让开发者能轻松创建动态内容。以下是对 Razor 语法的详细介绍:
1. 基本语法结构
Razor 使用 @
符号来区分服务器代码和 HTML 内容。当遇到 @
时,Razor 引擎就会将其后的内容视为服务器代码。
嵌入表达式
你可以把简单的服务器表达式嵌入到 HTML 中,像下面这样:
html
<!DOCTYPE html>
<html>
<body>
<p>当前时间是:@DateTime.Now</p>
</body>
</html>
在这个例子里,@DateTime.Now
就是一个 Razor 表达式,它会在页面渲染时被替换成当前的日期和时间。
代码块
要是有更复杂的代码逻辑,你可以使用代码块。代码块用 @{ }
包裹起来,示例如下:
html
<!DOCTYPE html>
<html>
<body>
@{
int num = 10;
string message = "这是一个数字:";
}
<p>@message @num</p>
</body>
</html>
在这个代码块中,定义了一个整数变量 num
和一个字符串变量 message
,然后在 HTML 中输出这些变量的值。
2. 控制结构
Razor 支持常见的控制结构,例如 if
语句、for
循环、foreach
循环等。
if
语句
html
<!DOCTYPE html>
<html>
<body>
@{
int age = 20;
if (age >= 18)
{
<p>你已成年。</p>
}
else
{
<p>你还未成年。</p>
}
}
</body>
</html>
此例依据 age
变量的值来判断输出不同的信息。
for
循环
html
<!DOCTYPE html>
<html>
<body>
<ul>
@for (int i = 1; i <= 5; i++)
{
<li>第 @i 项</li>
}
</ul>
</body>
</html>
该代码利用 for
循环生成一个包含 5 个列表项的无序列表。
foreach
循环
html
<!DOCTYPE html>
<html>
<body>
@{
string[] fruits = { "苹果", "香蕉", "橙子" };
}
<ul>
@foreach (string fruit in fruits)
{
<li>@fruit</li>
}
</ul>
</body>
</html>
这里使用 foreach
循环遍历字符串数组 fruits
,并将每个元素显示为列表项。
3. 与 HTML 标签结合
标签内使用表达式
可以在 HTML 标签的属性中使用 Razor 表达式,示例如下:
html
<!DOCTYPE html>
<html>
<body>
@{
string imageUrl = "https://example.com/image.jpg";
}
<img src="@imageUrl" alt="示例图片">
</body>
</html>
在这个例子中,src
属性的值由 Razor 表达式 @imageUrl
提供。
动态生成 HTML 标签
你还可以使用 Razor 代码动态生成 HTML 标签,例如:
html
<!DOCTYPE html>
<html>
<body>
@{
bool showDiv = true;
if (showDiv)
{
<div>这是一个动态生成的 div 标签。</div>
}
}
</body>
</html>
当 showDiv
为 true
时,会生成一个 div
标签。
4. 帮助器方法
Razor 提供了许多帮助器方法,用于简化常见的任务,如表单处理、链接生成等。
表单帮助器
html
<!DOCTYPE html>
<html>
<body>
@using (Html.BeginForm("SubmitForm", "Home", FormMethod.Post))
{
<label for="name">姓名:</label>
<input type="text" id="name" name="name" />
<input type="submit" value="提交" />
}
</body>
</html>
Html.BeginForm
帮助器方法用于创建一个 HTML 表单,并且会自动处理表单的提交地址和方法。
链接帮助器
html
<!DOCTYPE html>
<html>
<body>
@Html.ActionLink("返回主页", "Index", "Home")
</body>
</html>
Html.ActionLink
帮助器方法用于创建一个超链接,它会根据指定的控制器和动作生成正确的 URL。
5. 部分视图和布局页
部分视图
部分视图是可复用的 Razor 视图片段,能在多个页面中使用。可以使用 @Html.Partial
方法来渲染部分视图,示例如下:
html
<!DOCTYPE html>
<html>
<body>
@Html.Partial("_MyPartialView")
</body>
</html>
_MyPartialView.cshtml
是一个部分视图文件,@Html.Partial
方法会将其内容渲染到当前页面中。
布局页
布局页用于定义页面的整体结构,多个页面可以共享同一个布局。在视图文件中,可以使用 Layout
属性指定要使用的布局页,例如:
html
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>这是页面内容</h1>
_Layout.cshtml
是一个布局页文件,包含了页面的公共部分,如头部、脚部等。
通过上述内容,你可以对 Razor 语法有一个较为全面的了解,能够在 ASP.NET 项目中灵活运用它来创建动态网页。