脱离MVC使用Razor模板引擎
关于Razor模板引擎
1.简介
模板引擎:Razor、Nveocity、Vtemplate。Razor有VS自动提示。使用起来会方便一点。
但是Razor大多是在MVC下使用的。
那么如何在非MVC下使用Razor呢?
2.非MVC下使用Razor
借助开源的RazorEngine,我们就可以在非asp.net mvc项目中使用Razor引擎了。
甚至在winform项目中都可以使用Razor(就可以写一些灵活度较高的代码生成器了)。
3.RazorEngine下载地址
4.工作流程
通过和杨中科大大的交流,我大致得出了Razor的工作流程,如下图所示。本篇博文大致脉络
大体上依据这张图。

尝试使用
1.导入DLL

2.创建cshtml
在非mvc项目中创建cshtml文件(cshtml文件可以用自动提示)
方法很简单,新建一个html,新建的时候改名为XX.cshtml即可。

像这样我们的前期准备工作就做完了!开始玩儿起来吧。
3.用c#语法在cshtml中写一个循环
@{}中可以写C#代码,C#代码可以和html代码混排,
像下图这样写是可以的,让小编想起了做php的岁月。

4.在一般处理程序中读取
从开头的流程图得知,想让程序转起来,还得用Razor对象,读取一下cshtml。
让他形成一个程序集,再生成html。
图上画这绕,其实用起来并不太复杂。
像下图这样就可以了。

5)cshtml如何读取对象中的值
1)首先在一般处理程序中,调用Parse方法的时候多给一个参数。
这个参数,就是你在cshtml中想要读取对象。(理论上啥都行)

2)然后再cshtm中就可以找到这个对象了。
@Model.Age
@Model.Name
可以把这段代码写在cshtml中,想在哪输出就在哪输出。
结尾
至此,我们解决了,如何在非mvc下使用Razor模板引擎的几个基础问题。
1)如何创建环境。简单说 导入dll,创建cshtml文件
2)@{}的方式嵌入C#代码。 混编的效果
3)在cshtml中如何获取对象的值
基本上就是这些吧。
脱离MVC使用Razor模板引擎的更多相关文章
- MVC Razor模板引擎输出HTML或者生产HTML文件
以前做CMS的时候都会根据模板来生成输出HTML或者生成HTML文件. 常用的引擎有VTemplate.NVelocity等等,这个我就布做介绍了. 这里我想说的是.当mvc出现Razor模板引擎的时 ...
- Asp.net MVC Razor模板引擎技巧分享
Razor是Asp.net MVC中新的默认模板类型, 语法简单易用.这篇文章不涉及Razor的语法,主要介绍Razor的一些在MVC项目中的使用技巧,以及脱离MVC环境下,如何使用Razor. 阅读 ...
- [转]MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
本文参考自下面文章整理 MVC Razor模板引擎 @RenderBody.@RenderPage.@RenderSection及Html.RenderPartial.Html.RenderActio ...
- MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式
MVC的验证(模型注解和非侵入式脚本的结合使用) @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...
- MVC小系列(二)【Razor 模板引擎】
Razor 模板引擎 Razor模板页:它使我们不用再使用master模板了 一 :@Url.Content:是可以加载CSS和JS等文件比如: <link href="@Url.Co ...
- Razor模板引擎
Razor模板引擎 阅读目录 一.简介 二.非Mvc中使用Razor 三.总结 回到目录 一.简介 在MVC以外的场景中,我们往往需要完成一些模板引擎生成代码或页面的工作:在以前我们一般常用的有Raz ...
- Razor模板引擎 (RazorEngine)
Razor模板引擎不仅在ASP.NET MVC中内置了Razor模板引擎,还有一个开源的RazorEngine, 这样以来我们可以在非ASP.NET MVC项目中使用Razor引擎,甚至在控制台,Wi ...
- Razor - 模板引擎 / 代码生成 - RazorEngine
目录 Brief Authors Official Website RazorEngine 的原理 - 官方解释 安装记录 Supported Syntax (默认实现支持的语法) 测试记录 - ca ...
- 基于ABP做一个简单的系统——实战篇:4.基于富文本编辑器,Razor模板引擎生成内容并导出Word 填坑记录
起因 需求是这样的,有一种协议需要生成,协议的模板是可配置的,在生成过程中,模板中的内容可以根据约定的标记进行替换(就像mvc的razor模板一样).生成后的内容还需要导出成word或pdf. 常见的 ...
随机推荐
- mosquitto启动时Address already in use 和 一般的 Address already in use
对于mosquitto启动时的地址占用错误,可能是mosquitto启动之后没关掉,进程一直占用了端口.查看mosquitto相关的进程,然后关掉就可启动了. 关掉mosquitto进程即可 参考: ...
- 2nd 简单四则运算更新
简单四则运算更新 功能:由随机数决定出题为10个以内的数字,并确定是否出现括号(仅限一对),顺序输出表达式,并用栈的方式进行计算,判断正误.其他功能有待进一步实现. 头文件 #include < ...
- Ansible基础配置与常用模块使用
环境介绍: Ansible服务端IP:192.168.2.215 Ansible客户端IP:192.168.2.216.192.168.2.218.192.168.2.113 一.创建Ansibl ...
- python mysql查询结果乱码
在connect()方法中传入charset='utf8'参数即可. conn = MySQLdb.connect(host=get_config_values('mysql', 'host'), p ...
- vue-cli3使用cdn方式引入moment.js
1. index.html引入: <script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js"&g ...
- sqlserver-触发器-判断更新了哪个字段。
create trigger 触发器名称on 表名(将触发器创建到那张表中)for updateasif update(判断更新字段)beginupdate (要更新的表名) set 字段=inser ...
- post和updatebatch区别 delphi
Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库如果不是使用批量更新的方式的时候,Post的时候,确认的修改直接写入数据库. 我弄了一个例子是ado的.往数据 ...
- 第134天:移动web开发的一些总结(二)
1.响应式布局 开发一个页面,在所有的设备上都能够完美展示. 媒体查询:@media screen and (max-width:100px) { } 媒体类型:screen(屏幕) print(打印 ...
- QT 选择对话框简单示例
QT 选择对话框简单示例 部分代码: pDialog->addSeparator(); QAction *pmb2 = pDialog->addAction(QString::fromLo ...
- C#中string[]数组和list<string>泛型的相互转换 【转】
http://www.cnblogs.com/szjdw/archive/2012/03/09/2387885.html 1,从System.String[]转到List<System.Stri ...