Razor 语法学习笔记

什么是 Razor 语法?

Razor 是一种基于 C# 的轻量级模板语言,用于动态生成 HTML、XML、JS 等文档。它使用类似于 ASP.NET Web Forms 的语法进行编写,但与 Web Forms 不同的是,Razor 更加注重前端开发人员的体验,使开发工作更加轻松和高效。

Razor 语法的基本介绍

Razor 语法特点

  1. 简洁:Razor 语法非常简洁,尤其是对于想要在视图中创建复杂逻辑的 MVC 开发人员来说。
  2. 易读:Razor 语法可以让你更容易地读懂代码,这也让你处理代码变得更加快捷。
  3. 隐藏代码逻辑:Razor 语法会尽可能地隐藏代码逻辑,这可以让你更加专注于视图上的内容。

Razor 语法的基本语法

输出语句

输出语句用于将变量或表达式的值插入到视图中。在 Razor 中,我们使用 @ 符号来定义输出语句,如下所示:

Copy Code
@{ // 定义一个变量 var title = "我的 Razor 学习笔记"; } <h1>@title</h1>

在上面的例子中,我们定义了一个变量 title,并将它的值输出到 <h1> 标签中。

条件语句

条件语句用于根据表达式的值来决定是否执行某些语句。在 Razor 中,我们使用 if...else 语句来定义条件语句,如下所示:

Copy Code
@{ // 定义一个变量 var age = 18; } @if (age >= 18) { <p>你已经成年了!</p> } else { <p>你还是未成年人!</p> }

在上面的例子中,我们根据 age 变量的值来执行不同的代码块。

循环语句

循环语句用于重复执行一组语句。在 Razor 中,我们使用 forforeachwhile 等关键字来定义循环语句,如下所示:

Copy Code
@{ // 定义一个数组 var names = new[] { "张三", "李四", "王五" }; } @foreach (var name in names) { <p>@name</p> }

在上面的例子中,我们使用 foreach 循环语句遍历了 names 数组,然后输出每个元素的值。

Razor 语法实例

示例1:动态生成 HTML

Copy Code
@{ // 定义一个包含学生姓名和成绩的字典 var students = new Dictionary<string, int> { { "张三", 90 }, { "李四", 80 }, { "王五", 70 } }; } <h2>学生列表</h2> <table> <tr> <th>学生姓名</th> <th>分数</th> </tr> @foreach (var student in students) { <tr> <td>@student.Key</td> <td>@student.Value</td> </tr> } </table>

在上面的例子中,我们定义了一个包含学生信息的字典,并使用 foreach 循环语句遍历了这个字典,然后根据字典中的数据动态生成了一个 HTML 表格。

示例2:根据条件显示不同的内容

Copy Code
@{ // 定义一个包含用户角色的列表 var roles = new[] { "teacher", "admin", "student" }; // 定义当前用户的角色 var role = "admin"; } @if (role == "admin") { <h1>欢迎管理员登陆</h1> } else if (role == "student") { <h1>欢迎学生登陆</h1> } else { <h1>欢迎访问本网站</h1> }

在上面的例子中,我们定义了一个包含用户角色的数组,然后根据当前用户的角色来显示不同的标题。当用户的角色为 admin 时,会显示“欢迎管理员登陆”;当用户的角色为 student 时,会显示“欢迎学生登陆”;否则,会显示“欢迎访问本网站”。