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. C#中实现并发的几种方法的性能测试

    C#中实现并发的几种方法的性能测试 0x00 起因 去年写的一个程序因为需要在局域网发送消息支持一些命令和简单数据的传输,所以写了一个C/S的通信模块.当时的做法很简单,服务端等待链接,有用户接入后开 ...

  2. 怎样编写高质量的java代码

    代码质量概述     怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...

  3. ASP.NET Web API Selfhost宿主环境中管道、路由

    ASP.NET Web API Selfhost宿主环境中管道.路由 前言 前面的几个篇幅对Web API中的路由和管道进行了简单的介绍并没有详细的去说明一些什么,然而ASP.NET Web API这 ...

  4. Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP

    Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP 1.1.  Sp  oop>>COP ,AOP ,SOP1 1.2. Sp  oop 结构化方法SP(Stru ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密

    系列目录 前言: 这一节提供一个简单的功能,这个功能看似简单,找了一下没找到EF链接数据库串的加密帮助文档,只能自己写了,这样也更加符合自己的加密要求 有时候我们发布程序为了避免程序外的SQL链接串明 ...

  6. iOS开发——创建你自己的Framework

    如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...

  7. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  8. linux终端指令总结

    一直没机会进行linux指令的系统学习,但是工作中总能遇到通过指令操作文件或数据库的情况,总不能一味地依赖后端开发者的帮忙.上任领导说过,要是在同一个地方跌倒,那么你就是傻子.我可不想成为傻子,so, ...

  9. ASP.NET MVC项目演练:用户登录

    ASP.NET MVC 基础入门 http://www.cnblogs.com/liunlls/p/aspnetmvc_gettingstarted.html 设置默认启动页面 public clas ...

  10. C++四种类型转换方式。

    类型转换有c风格的,当然还有c++风格的.c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比 ...