zoukankan      html  css  js  c++  java
  • Razor速记

    1、语法

    @{

        int c=2;

    }

    @for(int i=0;i<c;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;

    }

         

         

    /// <summary>

    /// 检索多级模板,保留目录结构

    /// </summary>

    /// <param name="path"></param>

    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 = "1@1.1", NameSpace = "test", Registeredorganization = "bjzy" };

    option.MetaString = "{Name:"Test"}";

    //Console.WriteLine(option.ToMeta<Model.Table>());

    //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(' ', ' ');

    (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

         

       

  • 相关阅读:
    SQLite数据库如何存储和读取二进制数据
    JS常用代码
    获取内容第一张图片地址的函数
    我对App_Code的理解
    VS2008中Web项目的App_Code目录问题
    jQuery 浮动广告实现代码
    常用的倒计时脚本
    IE8 CSS hack
    精典的网吧常用批处理收集
    ASP.NET中App_Code,App_Data等文件夹的作用
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/6121984.html
Copyright © 2011-2022 走看看