昆明做网站哪家,成都比较好的设计公司,学室内设计要学什么软件,个人网站开发用什么语言从Web Form开始#xff0c;视图的机制其实就没改变过#xff0c;动态编译视图脚本。所不同的是#xff0c;Razor就仅仅是模板#xff0c;没在嵌入与网站等相关的东西#xff0c;应该是SRP的一个体现。 可惜#xff0c;这种功能分离仍做得不彻底#xff0c;MVC中#xf… 从Web Form开始视图的机制其实就没改变过动态编译视图脚本。所不同的是Razor就仅仅是模板没在嵌入与网站等相关的东西应该是SRP的一个体现。 可惜这种功能分离仍做得不彻底MVC中Razor与其他部分的整合仍比较多路径的寻找等功能的嵌入使得它不容易单独拿出来使用。当然这也是微软的一贯风格整体使用性能优先。视图引擎浅析模板是其最主要的功能但是另一个次功能也不可忽视内嵌帮助方法及其智能代码完成功能。这个附助功能大大提高效能。 现在我们面临的问题是当脱离ASP。Net MVC的框架以后如何保持这个特性。幸运的是微软提供了扩展的接口或者说方法。 在阐述解决方案之前还是再回顾一下视图引擎的原理。 从Web Form到Razor即有继承也有扬弃。模板文件(cshtml vbhtml),仍然是当作一个类来处理这与原来的机制是一致不同的是不再是静态类以前文件名就是页面类名并且还可以有一个真正的类文件直接使用(code behind, partial class)。而Razor是完全的运行时编译生成的类甚至类名都是临时生成Guid。所有这些改变使得对View的控制如同要抓住随风漂动的树叶几乎不可能幸运的是漂动叶子有着不动的根这个根就是所有View的基类WebViewPage。注意到这个类是个抽象类原因显而易见。抓到这个根本之后MVC的很多特性和功能就立马找到了出处。比如HtmIHelperRazor 使用Html), Model (Razor 使用Model)等其实都是这个基类的一个属性。 以上就是Razor视图的主要的机制如果开发人员只使用ASPNet MVC本身的功能而不去扩展或者像我们一样完全创建一套自己全新的框架那么这些背后的故事知道也可不了解也无所谓。 而对我们的框架开发来说还有一个重要问题扩展接口在哪里?答案却是极其简单在WebConfig文件有一块pages的配置区或其中有一项ParseBaseType改成你自己View的基类即可。甚至代码智能提示(IntelliSense)功能就马上起作用也许要重起Visual Studio)。这个自定义类可以继承自WebViewPage但非必须。 好了万事俱备可以开始展开你想象翅膀做你想作的事了 》 参看逃脱Asp.Net MVC框架的枷锁,使用Razor视图引擎 本文版权属于© 2012 - 2013 予沁安 | 转载请注明作者和出处WangHaoBlog.com 转载于:https://my.oschina.net/wonner/blog/92416