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