第2章 ASP.NET MVC
2.1 MVC模式
MVC全称是ModelViewController,它是一种软件设计模式,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独立地发展起来,用于将传统的输入、处理和输出功能映射到一个逻辑的图形化用户界面的结构中。
MVC把应用程序分层三层:Model(模型)、View(视图)和Controller(控制器),如图2-1所示,每层拥有特定的作用,而且不需要关注其他层的工作。
图2-1 MVC架构
(1)Model(模型):表示应用程序的核心。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,也就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
(2)View(视图):用于显示数据(数据库记录)。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面;在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash,以及像XHTML、XML/XSL、WML等一些标识语言和WebServices。
(3)Controller(控制器):处理输入的数据(写入数据库的记录)。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
如何更好地处理应用程序的界面变得越来越具有挑战性。MVC的一个好处是它能为应用程序处理很多不同的视图。MVC分层模式有助于管理复杂的应用程序,因为开发人员可以在一段时间内专门关注一个方面,例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。MVC分层同时也简化了分组开发,不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。