Web Pages就是原来内置于MVC3里面的Razor的剥离。
理论上来说,http://ASP.NET可以选择两种框架模型,基于页面 或者 基于MVC
基于页面可以选择 WebForm 作为表现层,也可以选择 WebPages 作为表现层。
同样的,基于MVC也有这两种视图引擎。
其实说白了,表现层是可以独立于下面的框架模型的,所以两两组合后可以有四种选择。
WebPages 一开始是作为 MVC 的视图引擎来做的,所以和 WebForms 相比的话,在某些方面在某种意义上来说功能并不完整。但是好在轻量和拥有最便捷的代码杂凑语法(HTML和代码混写)。同时由于轻量,所以 WebPages 也可以独立作为模板引擎来使用。
顺便说一下我的 Jumony 也是作为 MVC 的视图引擎和独立处理页面两种模式并存。
做技术选型的时候,一般分两步选择。
第一步考虑是基于页面还是基于MVC,如果你的业务逻辑与页面紧密相关,不同页面之间共性较少,或者说页面和页面之间差异较大可以以页面划分功能模块,又或者项目非常小以至于只有一两个页面。这些情况下可以考虑采用基于页面的模型。
然后再选择表现层框架,如果不需要PostBack的话,就可以考虑WebPages了。
基于页面的模式虽然在今天已经在逐步退出主流,但我却也不觉得前途灰暗。其实说白了任何一个表现层技术都可以做成基于页面和基于MVC两种模式,将来也必然是这样的一种局面。
基于页面的模型在构建小型网站和以页面划分模块的网站上是有优势的。