ASP.NET 是一个开发框架,用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。
ASP.NET 支持三种开放模式:
Web Pages、MVC (Model View Controller) 以及 Web Forms:
MVC 编程模型
MVC 是三个 ASP.NET 开发模型之一。
MVC 是用于构建 web 应用程序的一种框架,使用 MVC (Model View Controller) 设计:
- Model(模型)表示应用程序核心(比如数据库记录列表)
- View(视图)对数据(数据库记录)进行显示
- Controller(控制器)处理输入(写入数据库记录)
MVC 模型同时提供对 HTML、CSS 以及 JavaScript 的完整控制。
MVC 模型通过三个逻辑层来定义 web 应用程序:
- business layer(业务层、模型逻辑)
- display layer(显示层、视图逻辑)
- input control(输入控件、控制器逻辑)
模型(Model)
模型(Model)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象在数据库中存取数据。
View(视图)
View(视图)是应用程序中处理数据显示的部分。
通常从模型数据中创建视图。
控制器
控制器是应用程序中处理用户交互的部分。
通常控制器从视图读取数据、控制用户输入,并向模型发送数据数据。
MVC 的这种拆分有助于我们管理复杂的应用程序,因为您能够在同一时间关注一个方面。例如,您可以在不依赖业务逻辑的情况下对视图进行设计。同时对应用程序的设计也更加容易。
MVC 的这种拆分同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
1.ASP.NET MVC - Internet 应用程序
我们将构建一个 Internet 应用程序,它支持添加、编辑、删除以及列出数据库中的信息。
2.ASP.NET MVC - 应用程序文件夹
2.1MVC 文件夹
典型的 ASP.NET MVC web 应用程序拥有如下文件夹内容:
应用程序信息
- Properties
- 引用
应用程序文件夹
- App_Data 文件夹
- Content 文件夹
- Controllers 文件夹
- Models 文件夹
- Scripts 文件夹
- Views 文件夹
配置文件
- Global.asax
- packages.config
- Web.config
3.ASP.NET MVC - 样式和布局
3.1添加布局
文件 _Layout.cshtml 表示应用程序中每个页面的布局。它位于 Views 文件夹中的 Shared 文件夹。
3.2添加样式
应用程序的样式表是 Site.css。它位于 Content 文件夹中。
3.3_ViewStart 文件
Shared 文件夹(位于 Views 文件夹内)中的 _ViewStart 文件包含以下内容:
@{Layout = "~/Views/Shared/_Layout.cshtml";}
4.ASP.NET MVC - 控制器
4.1Controllers 文件夹
Controllers 文件夹包含负责处理用户输入和响应的控制器类。
MVC 要求所有控制器的名称必须以 "Controller" 结尾。
4.2Home 控制器
我们应用程序中的控制器文件 HomeController.cs,定义了两个控件 Index 和 About。
4.3Controller 视图
Views 文件夹中的文件 Index.cshtml 和 About.cshtml 定义了控制器中的 ActionResult 视图 Index() 和 About()。
5.ASP.NET MVC - 视图
5.1Views 文件夹
Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件)。根据语言的不同,这些文件的扩展名可能是 html、asp、aspx、cshtml 以及 vbhtml。
Views 文件夹包含每个控制器对应的一个文件夹。
Visual Web Developer 已创建了一个 Account 文件夹、一个 Home 文件夹、一个 Shared 文件夹(在 Views 文件夹内)。
Account 文件夹包含用于注册并登录用户帐户的页面。
Home 文件夹用于存储诸如首页和关于页之类的应用程序页面。
Shared 文件夹用于存储控制器间分享的视图(模板页和布局页)。
5.2ASP.NET 文件类型
纯 HTML | .htm or .html |
经典 ASP | .asp |
经典 ASP.NET | .aspx |
ASP.NET Razor C# | .cshtml |
ASP.NET Razor VB | .vbhtml |
5.3Index 文件
文件 Index.cshtml 表示应用程序的首页。它是应用程序的默认文件(首页文件)。
5.4About 文件
文件 About.cshtml 表示应用程序的关于页面。
6.ASP.NET MVC - SQL 数据库
6.1创建数据库
Visual Web Developer 带有免费的 SQL 数据库,名为 SQL Server Compact。
本教程所需的这个数据库能够通过以下几个简单的步骤来创建:
- 右键点击解决方案资源管理器中的 App_Data 文件夹
- 选择添加,新项目
- 选择 SQL Server Compact Local Database *
- 把这个数据库命名为 Movies.sdf
- 点击添加按钮
6.2添加数据库表
双击 App_Data 文件夹中的 Movies.sdf 将打开 Database Explorer window。
如需在这个数据库中创建新表,请右键点击 Tables 文件夹,然后选择创建表。
列 | 类型 | 允许 Nulls |
---|---|---|
ID | int (primary key) | No |
Title | nvarchar(100) | No |
Director | nvarchar(100) | No |
Date | datetime | No |
对列的解释:
ID 是用于识别表中每条记录的整数。
Title 是 100 个字符长度的文本列,用于存储影片的名称。
Director 是 100 个字符长度的文本列,用于存储导演的名字。
Date 是日期列,用于存储影片的发行日期。
在建好上述列之后,您必须把 ID 列设置为表的主键(记录识别符)。要做到这一点,请在列名(ID)上点击并在 Column Properties window 中选择 Primary Key,把 Identity 属性设置为 True。
当您完成创建表列后,请保存表并命名为 MovieDBs。
6.3添加数据库记录
您可以使用 Visual Web Developer 向 movie 数据库添加一些测试记录。
在 App_Data 文件夹中双击 Movies.sdf 文件。
右键点击 Database Explorer window 中的 MovieDBs 表,并选择 Show Table Data。
添加记录:
ID | Title | Director | Date |
---|---|---|---|
1 | Psycho | Alfred Hitchcock | 01.01.1960 |
2 | La Dolce Vita | Federico Fellini | 01.01.1960 |
7.ASP.NET MVC - 模型
7.1MVC 模型
MVC 模型包含所有应用程序逻辑(业务逻辑、验证逻辑、数据访问逻辑),除了纯视图和控制器逻辑。
通过 MVC,模型可保存并操作应用程序数据。
7.2Models 文件夹
Models 文件夹包含表示应用程序模型的类。
7.3添加数据库模型
所需的数据库模型能够通过以下几个简单的步骤来创建:
在解决方案管理器中,右键点击 Models 文件夹,选择添加、类。
对类 MovieDB.cs 进行命名,然后点击添加。
7.4添加数据库控制器
本教程所需的数据库控制器能够通过以下几个简单的步骤来创建:
- 重建您的项目:选择测试,然后从菜单中选择 Build MvcDemo。
- 在解决方案资源管理器中,右键点击 Controllers 文件夹,然后选择添加、控制器。
- 把控制器名称设置为 MoviesController
- 选择模板:Controller with read/write actions and views, using Entity Framework
- 选择模型类:MovieDB (MvcDemo.Models)
- 选择 data context 类:MovieDBContext (MvcDemo.Models)
- 选择视图 Razor (CSHTML)
- 点击添加
Visual Web Developer 将创建如下文件:
- Controllers 文件夹中的 MoviesController.cs 文件
- Views 文件夹中的 Movies 文件夹
7.5添加数据库视图
以下文件会被自动地在 Movies 文件夹中创建:
- Create.cshtml
- Delete.cshtml
- Details.cshtml
- Edit.cshtml
- Index.cshtml
8.ASP.NET MVC - 安全
MVC 应用程序安全性
Models 文件夹包含表示应用程序模型的类。
Visual Web Developer 自动创建 AccountModels.cs 文件,该文件包含用于应用程序认证的模型。
AccountModels 包含 LogOnModel、ChangePasswordModel 以及 RegisterModel:
9.ASP.NET MVC - HTML 帮助器
HTML 帮助器
通过 MVC,HTML 帮助器类似于传统的 ASP.NET Web Form 控件。
类似 ASP.NET 中的 web form 控件,HTML 帮助器用于修改 HTML。但是 HTML 帮助器更轻。与 web form 控件不同,HTML 帮助器没有事件模型和 view state。
在大多数情况下,HTML 帮助器仅仅是返回字符串的方法。