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('\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

   
 

   

Razor速记的更多相关文章

  1. 警惕!高版本VS发布时预编译导致Mono中Razor找不到视图

    早前一段时间,一位朋友在Q群里面找到我,说它按照<Linux.NET学习手记>的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象.当时费了 ...

  2. ASP.NET MVC 5 Web编程4 -- Razor视图引擎

    Razor简介 Razor是ASP.NET新增的一个视图引擎,由微软全球最年轻的副总裁,有着"ASP.NET之父"称呼的Scott Guthrie主导的团队开发. 主导Razor开 ...

  3. .NET MVC Razor模板预编译(二)

    在前面一片文章:<.NET MVC4 Razor视图预编译(一)> 里面我采用的是PrecompiledMvcViewEngineContrib组件进行预编译视图的虚拟地址注册,但是这个组 ...

  4. .NET MVC4 Razor视图预编译(一)

    在平时使用.NET MVC中不乏有类似的需求:某些razor视图,特别是系统后台的视图,不想让用户自行更改,需要通过某种方法把视图模板编译到项目的dll中去. 但是VS并不提供razor的预编译,如果 ...

  5. MVC5学习系列--Razor视图(一)

    前言 嗷~小弟我又出现了~咳咳..嚎过头了, 先说一说为什么写这个吧,~首先肯定是我自己需要学(废话 - -,)//,之前也写过MVC4的项目,嗯..但是仅限于使用并没有很深入的每个模块去了解, 这段 ...

  6. ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考

    原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...

  7. Razor基础语法一

    目录: 什么是Razor? 渲染HTML Razor语法 隐式 Razor 表达式 显式 Razor 表达式 什么是Razor? Razor是基于服务端代码转换成网页的标记语法.语法主要包括Razor ...

  8. VS2015突然报错————Encountered an unexpected error when attempting to resolve tag helper directive '@addTagHelper' with value 'Microsoft.AspNet.Mvc.Razor.TagHelpers.UrlResolutionTagHelper

    Encountered an unexpected error when attempting to resolve tag helper directive '@addTagHelper' with ...

  9. ASP.NET MVC——Razor视图引擎

    Razor是MVC框架视图引擎,我们今天就来说一说Razor视图引擎. 首先还是来创建一个基础项目叫Razor来演示. 先来定义一个Model叫Product public class Product ...

随机推荐

  1. UWP控件与DataBind

    在uwp开发中必不可少的一个环节就是各种通用的控件的开发,所以在闲暇时间汇总了一下在uwp开发中控件的几种常用写法,以及属性的几种绑定方式,有可能不全面,请大家多多包涵 :) 1.先从win10新增的 ...

  2. ASP.NET MVC 5 Web编程3 -- Controller的应用及扩展

    Controller基础 一. 访问修饰符 1.1 类的访问修饰符 Controller类的访问修饰符必须是public,url才能被拦截. internal能编译通过,但无法拦截url请求.priv ...

  3. 自定义Sublime Text的图标

    sublime text很赞,windows上最接近mac逼格的轻量编辑器,对于我这样比较喜欢格调的人来说,简直不二之选啊. 美中不足的是,看久了觉得它的图标似乎不是很上心.现在都流行扁平化了而它还停 ...

  4. 如何用Dockerfile创建镜像

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5181222.html 创建镜像的目的 首先说DockerHub或其它一些镜像仓库已经提供了够多的镜像,有 ...

  5. MySQL基础之视图

    关于视图 视图是虚表,其中并不存在数据,只是多个表的组成 使用视图的优势 视图可以代替复杂的查询SQL语句,可以事先将不同表的多个数据组织起来 提高权限控制管理,能够将权限限制为行级管理,更具有安全性 ...

  6. Python下载网页的几种方法

    get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...

  7. DDD实践切入点(二)

    最近发现下面关于上下文的理解有些问题,不太好改,暂时先不改了 承前:大型系统的支撑,应用系统开发思想的变迁,DDD实践切入点(一) 从大比例结构入手已经开始了系统的建设,大家都知道需求是会不断变化不断 ...

  8. Android面试一天一题(1Day)

    写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...

  9. 你真的会玩SQL吗?简单的数据修改

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  10. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格

    通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码.(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息 ...