C#中Razor模板引擎简单使用
在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#模板引擎的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









