MVC是什么?
MVC适用于大型可扩展的Web应用的开发,它强制性地将应用程序的输入、处理和输出分开,将其划分为模型、视图和控制器3个核心部分,使它们各司其职,各自完成不同的任务,其中任何一部分的修改都不会影响其他两部分。
原理图
模型
模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。
视图
视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,其更新由控制器控制。视图不包含任何业务逻辑的处理,它只是作为一种输出数据的方式。
控制器
在MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的请求。
还可以3个职责:参数校验,异常捕获,业务封装(不是包括具体方业法的实现哈)--2012-2-22
总之,控制器一定要瘦。
MVC的处理过程
MVC的处理过程是:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。
MVC的优点
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
1. 提供了对HTML页面显示的全面控制
2. 生成的HTML更加简洁,由于没有ViewState,因此页面也会变得很小
3. 清晰的将代码与显示分离
4. 提供了应用程序层的单元测试
5. 有多种视图引擎可以被支持(Brail Nhaml Nvelocity XSLT)
6. 可以方便的整合jQuery和YahooUI之类的JavaScript架构
7. 可以从逻辑上动态的映射URL
8. 默认使用RESTful界面(有助于SEO)
ASP.NET MVC缺点:
1. 非事件驱动型架构,增加了理解难度
2. 需要理解并熟悉HTTP、HTML、CSS、Javascript
3. 第三方库提供支持不足
4. 没有提供ViewState和PostBack模型,因此难以保存状态
资源:http://www.asp.net/mvc/tutorials/passing-data-to-view-master-pages-cs
下一篇:MVC(二):第一个asp.net MVC3.5体验项目