本文只例出Razor中常用的语法及举例调制模板需要的部分。不常用的,请翻看官方文档。
@using RazorEngine;
@inherits RazorEngine.Templating.TemplateBase
@using DbModels;则是调制模板必须的引用。
@using DbModels;
@using System.Text;
@{
//在这里使用C#语言编辑,如
int i = 100;
int j = 1;
//输出
@Raw((i+j).ToString());
}
代码块里输出内容
@{
//在这里使用C#语言编辑,如
int i = 100;
int j = 1;
int add = i + j;
//输出
<c>这里输出相加的数i+j:@add</c>
}
为了一个地方定义,多处处理,可以定义一个section,其它地方直接渲染输出。
定义坑
@section DefaultConn{
//<c_connectionStrings>
// <c_add name="DefaultConnection" connectionString="@Model.ConnectionString$$" />
//</c_connectionStrings>
}
输出坑1次
@RenderSection("DefaultConn")
输出坑2次
@RenderSection("DefaultConn")
@functions{}内部可以定义多个函数,如下:
@functions {
/// <summary>
/// 处理父子表的映射关系
/// </summary>
/// <param name="mainTable">主表</param>
/// <param name="sunTable">外键指向主键的表</param>
/// <param name="currentSunField">当前子字段</param>
/// <param name="IsMultiSunKeyToCurrentSunField">是不是子表的当前字段所指向主表的子段有多个</param>
/// <returns>字段标</returns>
public static string ProcessForeignKey(TableInfomation mainTable, TableInfomation sunTable,FieldInfo currentSunField,out bool IsMultiSunKeyToCurrentSunField)
{
return "测试"
}
}
什么是布局,为用户在页面之间导航提供一致的体验。例如应用 头、导航及菜单元素和页脚。
7.1、定义布局文件_layout.cshtml,如下:
@using RazorEngine;
@using DbModels;
@inherits RazorEngine.Templating.TemplateBase
@using System.Text;
★★★★★★ 这是第一层layout输出的信息 ★★★★★★
@RenderBody()
7.2、引用布局模板的文件test.cshtml,如下:
@using RazorEngine;
@using DbModels;
@inherits RazorEngine.Templating.TemplateBase
@using System.Text;
@{
//支持绝对及相对文件路径
Layout = "./布局模板文件/layout.cshtml";
}@{
//=========================配置开始=========================================
Model.Config.OutFileSuffix = ".cs";
Model.Config.OutFileName = "测试布局";
//=========================配置结束=========================================
//可以传递数据
ViewBag.Test = "AAAAAAAAAAA";
}
输出的模板内容
可用于局部渲染模板并输出,如下:
@Include("./引用文件/头文件")