1、语法
@{ int c=2; } @for(int i=0;i { @i @:@i @:select @:select @i select @i //@for 嵌套了,抛错
}
select @c |
2、移除模板
关键是要创建配置
static ITemplateServiceConfiguration config = new TemplateServiceConfiguration();
public static void Init() { var service = RazorEngineService.Create(config); RazorEngine.Engine.Razor = service; }
/// /// 检索多级模板,保留目录结构 /// /// path"> public static List<string> LoadAllTemplate(string path) { path = path.TrimEnd('\\', '/'); List<string> list = new List<string>(); ; foreach (string s in new List<string>(System.IO.Directory.GetFiles(path, "*.t", System.IO.SearchOption.AllDirectories))) { //文件名后缀 string keyName = string.Format("{0}\\{1}", System.IO.Path.GetDirectoryName(s).Substring(path.Length + 1), System.IO.Path.GetFileNameWithoutExtension(s)).TrimStart('\\'); list.Add(keyName); var key = new NameOnlyTemplateKey(keyName, ResolveType.Global, null); string razorTemplate = System.IO.File.ReadAllText(s, Encoding.UTF8); RazorEngine.Engine.Razor.AddTemplate(key, new RazorEngine.Templating.LoadedTemplateSource(razorTemplate)); RazorEngine.Engine.Razor.Compile(key, typeof(RazorOption)); } return list; }
public static void Test() { LoadAllTemplate(System.IO.Path.GetFullPath("Templates")); RazorOption option = new RazorOption() { EMail = "[email protected]", NameSpace = "test", Registeredorganization = "bjzy" }; option.MetaString = "{Name:\"Test\"}"; //Console.WriteLine(option.ToMeta //option.ObjectType = Enums.enumObjectType.Table; System.IO.TextWriter sw = new System.IO.StringWriter(); ITemplateKey key = RazorEngine.Engine.Razor.GetKey("ExportData\\Insert"); //Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(option, Newtonsoft.Json.Formatting.Indented)); RazorEngine.Engine.Razor.Run(key, sw, typeof(RazorOption), option); string fileName = System.Text.RegularExpressions.Regex.Match(sw.ToString(), @"(?<=\* 文件名:).*").Value.TrimEnd('\r', '\n'); (config.TemplateManager as DelegateTemplateManager).RemoveDynamic(key); RazorEngine.Engine.Razor.AddTemplate(key, "@DateTime.Now.ToString()"); RazorEngine.Engine.Razor.Compile(key, typeof(RazorOption)); RazorEngine.Engine.Razor.Run(key, sw, typeof(RazorOption), option); Console.Write(sw.ToString());
} |
3、嵌入方法或者函数
@helper 或 @function (貌似不支持)
参考 http://www.cnblogs.com/hbb0b0/p/5104027.html