C#中Razor语法是什么?基础模板引擎标记怎么使用?

来源:我的博客作者:重启一下头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#中Razor语法是什么?基础模板引擎标记怎么使用?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#中Razor语法是什么?基础模板引擎标记怎么使用?》有用,将其分享出去将是对创作者最好的鼓励。

Razor语法是C#生态中用于构建动态网页视图的模板标记语言,它允许开发者在HTML页面中直接嵌入C#代码,实现页面逻辑和展示内容的结合,是ASP.NET Core等框架默认的视图引擎语法。

C#中Razor语法是什么?基础模板引擎标记怎么使用?

Razor基础语法规则

代码块与表达式

Razor中通过@{ }定义多行代码块,单行表达式用@开头直接输出结果。代码块内部的C#代码遵循常规C#语法规则,变量需要先声明再使用。

@{
    // 定义多行代码块
    string userName = "测试用户";
    int userAge = 25;
}
<!-- 输出变量值 -->
<p>用户名:@userName</p>
<p>用户年龄:@userAge</p>
<!-- 直接输出表达式结果 -->
<p>明年年龄:@(userAge + 1)</p>

常用Razor指令

Razor提供了多个内置指令用于配置视图行为,常用的指令包括@model@using@inject等。

  • @model:指定视图绑定的模型类型,后续可以直接使用模型的属性
  • @using:引入需要使用的命名空间,避免重复写完整命名空间路径
  • @inject:从依赖注入容器中注入服务到视图中使用
@model UserViewModel
@using System.Collections.Generic
@inject ILogger<dynamic> Logger

<p>模型用户名:@Model.Name</p>

条件判断与循环语法

条件判断

Razor中支持ifelse ifelse条件判断,语法和C#代码一致,判断逻辑写在@if后面即可。

@{
    bool isVip = true;
}
@if (isVip)
{
    <p>您是VIP用户,享受专属权益</p>
}
else
{
    <p>普通用户,可升级为VIP</p>
}

循环语法

常用的循环包括for循环和foreach循环,用于遍历集合或者重复输出内容。

@{
    List<string> tagList = new List<string> { "C#", "Razor", "ASP.NET Core" };
}
<ul>
@foreach (var tag in tagList)
{
    <li>@tag</li>
}
</ul>

<p>数字遍历:</p>
@for (int i = 0; i < 3; i++)
{
    <span>@i </span>
}

注释与转义规则

Razor注释使用@* *@包裹,不会输出到最终生成的HTML中。如果需要在页面中显示@符号本身,需要使用@@进行转义。

@* 这是Razor注释,不会渲染到页面 *@
<p>邮箱格式示例:user@@ipipp.com</p>

基础示例:完整视图页面

下面是一个结合上述语法的完整Razor视图示例,绑定用户模型并展示用户信息和标签列表。

@model UserViewModel
@using System.Collections.Generic

<!DOCTYPE html>
<html>
<head>
    <title>用户信息页</title>
</head>
<body>
    <h1>用户详情</h1>
    <p>姓名:@Model.Name</p>
    <p>年龄:@Model.Age</p>
    @if (Model.Age >= 18)
    {
        <p>已成年</p>
    }
    else
    {
        <p>未成年</p>
    }
    <h3>用户标签:</h3>
    <ul>
    @foreach (var tag in Model.Tags)
    {
        <li>@tag</li>
    }
    </ul>
</body>
</html>

对应的模型类定义如下:

public class UserViewModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public List<string> Tags { get; set; }
}

C#Razor语法模板引擎ASP.NET_Core修改时间:2026-07-22 09:21:46

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。