mvc1 模式:
view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,会通知view需要update
view更新后向用户显示
mvc2 模式:
由于mvc1中,model可以通知view,然后view就可以被更新,这在windows程序中很常见,像MFC的frame-document-view架构,如果document改变了,他会主动通知view进行update
但是在web中,作为model的java bean更新后,无法调用作为view的jsp(而且view通常很多,需要选一个),因此改为mvc2模式:
view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,controller会选一个view并forward到这个jsp,附带把model放到request参数
这个view获得model然后显示
ASP.NET MVC 3 新特性全解析
ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展。这篇文章提供包含在此次发布中的许多新特性的说明.
Razor 视图引擎
ASP.NET MVC3 带来了一种新的名为 Razor 的视图引擎,提供了下列优点:
Razor 现在提供了一些新的特征:
Razor 还包含新的 HTML Helper,例如:
支持多视图引擎
在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.
控制器的改进
全局的 Action 过滤器
有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器的 Action 方法进行处理,实际上,有时候你希望对所有的 Action 都进行类似的处理,MVC3 允许你将过滤器加入到 GlobalFilters 集合中来创建全局的过滤器.