一,什么是MVC
首先先来看张图:
首先,宏观上说,使用MVC还是为了分层,就像以前三层架构一样,只不过三层架构更多关注于将业务和数据分开,而MVC则更关注与界面的展现部分,因为在Web开发中,界面是比较容易变动的,所以,按照设计模式的原则,容易变动的部分就应该抽出来,在整体架构设计中,这一点一直是被遵循的。在整体上,我们将整体上容易变动的部分抽成一层,让各层之间各自变化来达到解耦的目的。
然后,我们看MVC是如何分离界面和数据的:
在MVC中,Model负责程序的业务代码和对数据操作的代码,而Views负责界面的展现,用户的输入输出,Views里面与用户的交互逻辑放到了Controller里面,所以Controller自然成了连接Model和Views的桥梁。
二,传统Web VS MVC 访问过程
还是图解吧:
先看传统Web:
MVC访问:
如上图,可以看出,传统Web方式在处理用户访问请求时是创建页面对象,执行load方法;而在MVC方式中,用户因为在路由中做了配置:
( 如果没有配置,会按照默认的来),所以用户请求的时候,会创建controller类的对象,并调用相应的返回view的方法,这时候在应用程序的目录结构上看,就会看到Views文件夹下的某个cshtml被返回。