C#中Razor模板引擎简单使用

一只小鹿
一只小鹿
发布时间:2026-10-16| 5人浏览过
原创

在C#后端开发中,经常需要通过代码动态生成结构化文本,例如自定义邮件模板或通知消息。使用Razor模板引擎可以借助熟悉的C#语法将逻辑嵌入文本中,比传统的字符串拼接更安全且易于维护。

安装与引用

要在控制台应用或非Web环境中使用Razor模板功能,需引入第三方库 RazorEngine。通过NuGet包管理器执行以下命令进行安装:

install-package RazorEngine

基础操作顺序

实现模板渲染主要包含数据模型定义、模板编写和最终解析三个步骤。

第1步:定义数据模型

创建用于接收数据的类,确保属性名称与模板中的引用一致。以下示例定义了一个包含姓名和年龄的基础模型:

public class TestDemo
{
    public int Age { get; set; }
    public string Name { get; set; }
}

第2步:编写模板字符串

使用原始字符串(@"...")定义模板,利用Razor语法插入逻辑控制。注意:当需要在普通文本块中输出非HTML内容时,应包裹在 <text> 标签内或使用 @: 符号。

string template = @"
@if(Model!=null){
foreach(var item in Model){
<text>姓名:@item.Name,年龄:@item.Age</text>
}
}else{
<text>没有数据</text>
}";

第3步:执行解析并输出结果

调用 Razor.Parse 方法传入模板和内容集合即可得到最终HTML或文本字符串。

var data = new List<TestDemo>() {
    new TestDemo(){Name="张三",Age=10 },
    new TestDemo(){Name="张四",Age=11 },
    new TestDemo(){Name="马武",Age=30 }
};

// 正常数据渲染
var html = Razor.Parse(template, data);
// 输出预期结果:
// 姓名:张三,年龄:10
// 姓名:张四,年龄:11
// 姓名:马武,年龄:30

// 空数据测试
var html1 = Razor.Parse(template, null);
// 输出预期结果:
// 没有数据

Razor模板引擎核心语法规则

Razor是一种将服务器端C#代码嵌入文本或网页的标记语法,其核心理念是“写起来像HTML,读起来像代码”。主要规则如下:

1. 语法标识

  • 代码块:使用 @{ ... } 包裹C#逻辑语句。
  • 表达式/变量:使用 @ 开头直接输出值。若前后有文字粘连,建议使用括号如 @(value) 以避免解析歧义。

2. 流程控制

在模板主体中使用简化的关键字前缀:

  • 条件:@if(...)、@else、@elseif
  • 循环:@for、@foreach、@while

3. 特殊注意事项

  • 分号使用:仅在 @{} 代码块内的单条语句末尾加分号;直接在HTML上下文中写的逻辑语句(如@foreach)末尾无需分号。
  • 纯文本输出:若在代码块中需要输出纯文本而非HTML标签,请使用 <text> 标签或 @: 指令。
  • 文件扩展名:通常使用 .cshtml 作为文件后缀。

总结

通过RazorEngine库,C#开发者可以利用声明式的语法高效构建动态内容,解决了复杂字符串拼接带来的可读性差和易出错问题。结合简单的模型绑定与条件判断,即可满足大多数业务定制化文本的需求。 以上就是C#中Razor模板引擎简单使用的详细内容,更多关于C#模板引擎的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。