RazorEngine 是一个简化的模板引擎基于微软新的Razor 解析引擎, Razor是在 ASP.NET MVC3 和 Web Pages中引入的。 RazorEngine 提供了一个外包装和额外的服务,允许在其他类型的项目中使用的模板分析技术。下面这张图是他的架构图: 可以通过Nuget 获取RazorEngine ,下面是一个例子: ? 这个代码可以很好的在Mono 3.2上运行,Spacebuilder在Mono上运行修改备忘,Sps上面是用的RazorEngine 3.0.8版本在Mono上运行出错了,今天特意写了上述代码测试下Mono 3.2下运行最新的RazorEngine 3.3。
使用Nuget安装RazorEngine。 新建一个ASP.NET MVC项目,并且带有测试项目。
但是用着非常方便的 2.借助于开源的RazorEngine,我们可以在非asp.net mvc项目中使用Razor引擎,甚至在控制台、WinForm项目中都可以使用Razor(自己开发代码生成器) RazorEngine(c#语言写的)是微软做的一个开源的模板引擎,不是简单的在asp.net MVC中用,其他地方也是可以使用的。 自己写个cshtml 步骤: 1。 添加对RazorEngine的引用(1.放到项目的lib文件夹中,2.右键–引用–添加引用–浏览—打开该项目的lib文件,选择RazorEngine.dll文件即可!) 3。 添加一般处理程序Razor1.ashx using RazorEngine; using System; using System.Collections.Generic; using System.IO { return false; } } } } 修改Razor也可以读取“类”中数据,“数据库中的字段” using RazorEngine
使用Razor引擎模板生成字符串,类似于T4模板,T4要学语法,Razor就是就用c#了 安装依赖包 Install-Package RazorEngine.NetCore 生成代码 class Program void Main(string[] args) { //简单使用 string template = "Hello @Model.Name, welcome to RazorEngine 参考资料 FreeSql.Generator命令行代码生成器是如何实现的 RazorEngine issues with @Html
RazorEngine将模板cshtml编译成了。 一个程序集,每次编译运行,都会产生一个程序集; 可以用一个控制台程序打印出来,生成的“动态程序集“的名字(动态程序集是不能打印出磁盘中的位置的) using RazorEngine; using System 可以看到生成的程序集非常的多,模板每一次,有新的变量添加(页面内容的添加,就会重复编译,动态生成多个的程序集),大量程序集的影响网站的打开速度的性能 解决办法:给模板页取个别名”缓存名字“ using RazorEngine //给要解析模板文件cshtml一个别名字"缓存名",c1 //这次一旦编成功后,下次如果是再次编译这个相同的模板文件cshtml的话,就让RazorEngine
工作原理: RazorEngine引擎就是将cshtml模板文件进行了字符串的拼接,然后,再封装为一个程序集。。。再通过一般处理程序,进行调用。。 下面来封装一个方法。 用model替换模板中的变量; 封装一个类 步骤:项目名字—右键—-添加—–RPcshtmlHelper RPcshtmlHelper.cs using RazorEngine; using RazorEngine.Text
HtmlHelper.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using RazorEngine ; using System.IO; using RazorEngine.Text; namespace ProjectLX001 { public class HtmlHelper <title></title> </head> <body> @HtmlHelper.Include(); </body> </html> 第四步:读取模板文件一般处理程序 using RazorEngine.Text
当然在MVC 4、5的时代,我们也使用过如RazorEngine这样的第三方的视图引擎,那时候MVC中的Razor与框架耦合的比较紧密,第三方开源组件帮我们实现了在任意项目中使用Razor渲染视图为文本的方式 ;但是在.NET Core中 RazorEngine开源组件并没有移植过来,接下来我们还是要自食其力实现一个吧。
System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using RazorEngine ; using RazorEngine.Text; using System.Text; using System.Reflection; using System.Collections; namespace
using RazorEngine; using RazorEngine.Text; using System; using System.Collections; using System.Collections.Generic
Razor Engine,之前仅仅是ASP.NET MVC的一种View引擎,目前已经完全成为一种可以独立使用的模版引擎,并且已经成为了CodePlex上一个开源的项目(http://razorengine.codeplex.com
本篇介绍的主角是Razor,在非Core的版本中,我们常用开源的RazorEngine来解决我们的问题;但是它却没有对应.NET Core的版本。
ViewEngine 视图引擎,说的好听点就相当于发动机,就是驱动我们程序运行的机制,那么在MVC中我们可以采用的视图引擎有WebFormViewEngine以及RazorEngine这两种,当然我们也可以采用第三方提供的视图引擎
1,首先在C#中 我们知道可以的可以生成代码的有razor模板和T4模板,我是基于.net 5开发的于是就顺其自然的使用了当下流行的razor模板来生成代码 在代码引入类库RazorEngine.NetCore
写在前面 其实很多公司或者资深的开发都有自己快速创建项目的脚手架的,有的是魔改代码生成器实现,有的直接基于T4,RazorEngine等模板引擎打造;但无论如何,其最终目的其实就是搭建一个自定义项目模板
官网 模板引擎(Template Engine) RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。 官网 Nustache:无逻辑模板的开源库。
官网 模板引擎(Template Engine) RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。官网 Nustache:无逻辑模板的开源库。
风格指南 C# Style Guide - StackOverflow Q&A的风格指南 C# Coding Conventions - 官方MSDN C#代码约定 Template Engine模板引擎 RazorEngine