最早就接触过asp.net mvc 框架了,从1.0开始到现在的4.0,感觉是时候拥抱mvc了。
本篇主要内容
- Model—View—Controller介绍
- ViewModel模式
- ASP.NET MVC框架
- ASP.NET MVC3的新特性
Model—View—Controller介绍
MVC是一种用户界面模式,是一种关注表现层的模式。MVC模式代表的是处理用户的一种解决方案,并不处理应用程序关注的其他问题,如数据访问,服务交互。MVC将应用程序的用户界面分为三个组成部分:
模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则。
视图:定义应用程序界面的显示方式。
控制器:一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。
下图显示3个组件以及它们如何构成MVC模式
ViewModel模式
在MVC模式中,视图通常映射到领域模型实体。对于需要从多个实体中获取数据的场合,可以使用ViewModel,ViewModel是一个专为在特定视图模板中使用而进行优化的类。它提供了领域的扁平视图,可以暴露领域模型中不存在的属性。ViewModel有助于将视图与底层领域模型分离,比直接使用实体更为灵活
示例图
ASP.NET MVC 框架
ASP.NET MVC 框架是微软的MVC模式的实现,为创建ASP.NET 网站或应用程序提供的另一种方法(还有一个种自然就是我们常用的webform)。该框架位于 http://www.asp.net/mvc/ ,可以进行独立安装,Visual Studio 2010 中默认包含了ASP.NET MVC 2.0 版本。关于如何安装MVC 3.0 版本本文就不做介绍了
在ASP.NET MVC 中三个主要部分的定义大致如下:
- 模型:模型描述程设计人员感兴趣的问题域的一些类,这些类通常封装数据库中的数据,以及操作这些数据和执行特定域的业务逻辑代码。
- 视图:一个动态生成HTML页面的模板。
- 控制器:一个协调视图和模型之间关系的特殊类。它响应用户输入,与模型进行对话,并决定呈现哪个视图。
我们先建立一个ASP.NET MVC3.0 的应用程序,以此来了解ASP.NET MVC 框架
创建好的结构图
默认创建好的应用程序主要包含6个顶级目录2个跟目录下的文件
App_Data:该目录用于存储想要读取/写入的数据文件
Content:该目录用于保存CSS和图像文件以及其他非动态非脚本的内容
Controllers:该目录用于保存那些处理URL请求的Controller类
Models:该目录用于保存那些表示和操纵数据以及业务对象的类(此目录可以迁出到其他层)
Scripts:该目录用于保存javascript库文件和脚本(.js)
Views:该目录用于保存那些负责呈现输出结果(如HTML)的UI模板文件
Global.asax
Web.config
ASP.NET MVC3的新特性
- 新的视图引擎 Razor视图引擎
- 支持.NET 4数据注解
- 改进了验证模型,验证简介高效
- 与依赖项解析(Dependency Resolution)和全局操作过滤器(Global Action Filters)的强关联
- 丰富的javascript支持,其中包括 非侵入式的javascript、jQuery验证和JSON绑定
- 支持使用Nuget