Razor视图引擎浅析
现在,我们面临的问题是,当脱离ASP。Net MVC的框架以后,如何保持这个特性。幸运的是,微软提供了扩展的接口或者说方法。
在阐述解决方案之前,还是再回顾一下视图引擎的原理。
从Web Form到Razor,即有继承也有扬弃。模板文件(cshtml vbhtml),仍然是当作一个类来处理,这与原来的机制是一致,不同的是不再是静态类,以前文件名就是页面类名,并且还可以有一个真正的类文件直接使用(code behind, partial class)。而Razor是完全的运行时编译生成的类,甚至类名都是临时生成Guid。所有这些改变,使得对View的控制如同要抓住随风漂动的树叶,几乎不可能,幸运的是,漂动叶子有着不动的根,这个根就是所有View的基类,WebViewPage。注意到这个类是个抽象类,原因显而易见。抓到这个根本之后,MVC的很多特性和功能就立马找到了出处。比如,HtmIHelper(Razor 使用@Html), Model (Razor 使用@Model)等,其实都是这个基类的一个属性。
以上就是Razor视图的主要的机制,如果开发人员只使用ASPNet MVC本身的功能,而不去扩展,或者像我们一样完全创建一套自己全新的框架,那么这些背后的故事,知道也可,不了解也无所谓。
而对我们的框架开发来说,还有一个重要问题,扩展接口在哪里?答案却是极其简单,在Web,Config文件有一块<pages>的配置区或,其中有一项ParseBaseType改成你自己View的基类即可。甚至,代码智能提示(IntelliSense)功能就马上起作用(也许要重起Visual Studio)。这个自定义类可以继承自WebViewPage,但非必须。
好了,万事俱备,可以开始展开你想象翅膀,做你想作的事了 ==》 参看逃脱Asp.Net MVC框架的枷锁,使用Razor视图引擎
(本文版权属于© 2012 - 2013 予沁安 | 转载请注明作者和出处WangHaoBlog.com)
转载于:https://my.oschina.net/wonner/blog/92416
Razor视图引擎浅析相关推荐
- ASP.NET MVC3 Razor视图引擎-基础语法
I:ASP.NET MVC3在Visual Studio 2010中的变化 在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化. 1.ASP.NET MVC3必要的运行环境 ...
- ASP.NET MVC 3: Razor视图引擎中 @: 和text 语法【转载】
ASP.NET MVC 3: Razor视图引擎中 @: 和<text> 语法[转载] (文章没翻译:建议大家读英文原文,看不懂查着看,顺便提高自己的英语水平!) In today's p ...
- Razor视图引擎-基础语法
Razor视图引擎-基础语法 原文:Razor视图引擎-基础语法 所有以 @开头 或 @{ /* 代码体 */ } (在@与{直接不得添加任何空格) 的部分代码都会被ASP.NET引擎进行处理. 在 ...
- ASP.NET Razor 视图引擎编程参考
ASP.NET Razor 视图引擎编程参考 ASP.NET Razor 视图引擎编程参考 转载请注明出处:http://surfsky.cnblogs.com Rasor 视图引擎 http ...
- ASP.NET MVC Razor视图引擎
本篇文章我们一起来讨论ASP.NET MVC框架中的Razor视图引擎.主要包含以下内容: Razor简介 Razor语法 Razor如何呈现页面 布局页(Layout) Razor简介 Razor是 ...
- MVC学习三:Razor视图引擎
1.Razor视图引擎,主要是把View的HTML代码编译到View视图类对象中 转载于:https://www.cnblogs.com/WarBlog/p/7132611.html
- Razor 视图引擎的一些属性和方法
参考网址:http://www.cnblogs.com/hangwei/p/4391058.html ASP.NET MVC 5 Web编程4 -- Razor视图引擎 2015-04-30 09:0 ...
- ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习
一.天降神器"剃须刀" - Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用W ...
- Razor视图引擎、控制器与路由机制学习
1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity ...
最新文章
- AIX卷管理介绍以及利用空闲PP来创建文件系统
- Centos下安装配置WordPress与nginx教程
- spark任务jvm内存溢出
- LOJ#2132. 「NOI2015」荷马史诗
- html怎么制作附页,HTML和CSS属性的正确书写规范
- 摄像头 保存到外网服务器_直播平台搭建千万不要忽略流媒体服务器的存在
- kibana是什么_三千字带你搞懂什么是ELK
- 极化码 串并行译码的辨别(SC BP SCAN)硬判决和软输出
- win10怎么取消开机密码
- 【转载】语音处理资源
- python有道翻译接口-Python调用有道翻译api实现翻译
- 《好玩游戏物品清单》实现
- 正念的奇迹 - 喧嚣的世界中获取安宁
- 如何设置静态路由器计算机网络,路由器如何设置静态ip(固定ip)地址上网?
- 手机截屏直接分享反馈
- 让码农越爱越想爱的星座女TOP 5
- Office之word中插入Latex伪代码
- 抖音联盟实战,批量工作室养号,情感号抖音制作教程
- 苹果手机input输入文字消失,看不见
- 【分享贴】学习网站、资源网站、工具网站大杂烩,好用实用,分享给猿友