上面的虚线表示:被动角色。实线表示:主动角色。
1.控制器和视图:控制器和视图是双向的关系,但控制器的关系更主动。
当控制器是主动的角色的时候,控制器决定要显示哪一个View;当视图为主动角色时,视图可以决定,要将数据返回给控制器中的哪一个Action方法,并且,当数图需要数据的时候,可以决定数据应该从哪一个控制器的方法获得。
2.视图和模型:视图是主动角色,而模型则是以数据提供者的方式存在。所以视图到模型是实现,模型到视图是虚线。
视图上的数据,基本上是从控制器中的方法中传过来的。然而,传过来的数据类别,基本上是模型中定义的,所以,可以这样说:视图和模型之间,是彼此参考的关系,也就是说,视图会参考模型中的数据字典定义。
如果,视图发现,从控制器传过来的数据,不足以完整显示,这个时候,视图就会变成主动,即主动对模型,进行数据查询获得数据。也就是在上图中,看到的,视图到模型是实线。。
3.控制器和模型:控制器永远是主动的关系,控制器负责调用模型中所定义的各种数据字典,而模型只是单纯的提供数据服务,或者验证服务给控制器使用。
好了,综上所述:也就是,用户发过来的请求,首先会通过路由,路由机制,判断这个请求是,请求哪个控制器中的哪个方法,然后控制器,调用模型中的数据字典定义,获取数据之后,决定要显示哪一个视图。大概就是这么回事。
好了,现在看看,如果新建第一个MVC程序吧。
这里,我用的是VS2013,打开VS2013,选择文件--》新建--》项目
然后选择空白的模板
先好项目之后,初始化的模板是:
接着,我们自己新建一个控制器Home,修改一下默认生成的代码
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace FirstMVC.Controllers { public class HomeController : Controller { // GET: Home public string Index() { return "欢迎您,这里是ASP.NET MVC"; } } }
接着,我们运行一下代码,就得到如图的结果,这就是我们第一个简单的不能再简单的小程序:
总结;主要理解MVC的概念。