MVC概念(一)

来源:互联网 发布:mac迅雷无法登陆 编辑:程序博客网 时间:2024/05/22 05:21

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.     可以方便的整合jQueryYahooUI之类的JavaScript架构

7.     可以从逻辑上动态的映射URL

8.     默认使用RESTful界面(有助于SEO

 

ASP.NET MVC缺点:

1.     非事件驱动型架构,增加了理解难度

2.     需要理解并熟悉HTTPHTMLCSSJavascript

3.     第三方库提供支持不足

4.     没有提供ViewStatePostBack模型,因此难以保存状态

资源:http://www.asp.net/mvc/tutorials/passing-data-to-view-master-pages-cs

原创粉丝点击