目 录
第1章 ASP.NET MVC概述 1
1.1 ASP.NET MVC简介 1
1.1.1 初识MVC模式 1
1.1.2 MVC模式在Web开发中的应用 2
1.1.3 ASP.NET与ASP.NET MVC 3
1.1.4 ASP.NET MVC现状 4
1.2 MVC模式下的Web项目开发 5
1.2.1 开发环境 5
1.2.2 应用程序的结构 5
1.3 ASP.NET MVC生命周期 10
第2章 初识ASP.NET MVC项目开发 12
2.1 示例项目概述——在线书店 12
2.2 利用项目模板创建ASP.NET MVC项目 14
2.3 创建控制器 16
2.4 创建数据模型 19
2.5 创建视图 23
2.6 实现订单提交功能 27
2.6.1 在动作中接收连接参数 27
2.6.2 在视图中创建表单 30
2.6.3 将视图中的表单数据传递到动作 32
第3章 数据模型 41
3.1 数据模型概述 41
3.2 创建数据模型 41
3.2.1 基于LINQ to SQL的数据模型 42
3.2.2 基于Entity Framework的数据模型 44
3.2.3 自定义数据模型 45
3.3 ASP.NET MVC项目数据模型的选择与使用 46
3.3.1 创建基于Entity Framework的数据模型 47
3.3.2 基于Entity Framework数据模型的数据查询 50
3.3.3 基于Entity Framework数据模型的数据更新 52
3.3.4 基于Entity Framework数据模型的数据添加与删除 53
3.4 库模式数据模型 54
第4章 控制器技术 62
4.1 控制器概述 62
4.1.1 Controller的创建与结构 62
4.1.2 Controller的执行过程 65
4.2 动作名称选择器 65
4.3 动作方法选择器 67
4.3.1 NonAction属性 67
4.3.2 HttpGet属性、HttpPost属性、HttpDelete属性和HttpPut属性 67
4.4 过滤器属性 69
4.4.1 授权过滤器 71
4.4.2 动作过滤器 74
4.4.3 结果过滤器 76
4.4.4 异常过滤器 78
4.4.5 自定义动作过滤器 79
4.5 动作执行结果 81
4.5.1 常用的动作执行结果类 82
4.5.2 ViewData与TempData 85
第5章 视图技术 99
5.1 视图概述 99
5.2 创建与指定视图 100
5.3 表单和HTML辅助方法 102
5.3.1 表单的使用 102
5.3.2 HTML辅助方法 103
5.3.3 输入类辅助方法 104
5.3.4 显示类辅助方法 105
5.4 强类型视图 109
5.4.1 强类型视图 109
5.4.2 强类型辅助方法 111
5.5 视图模型 112
5.6 分部视图 113
5.6.1 分部视图的作用 113
5.6.2 创建分部视图 114
5.6.3 使用分部视图 114
5.7 Razor视图引擎 115
5.7.1 视图引擎 115
5.7.2 Razor概述 115
5.7.3 代码表达式 116
5.7.4 HTML编码 117
5.7.5 代码块 118
5.7.6 Razor语法 118
5.7.7 布局 121
5.8 模型绑定 123
5.8.1 强类型视图模型绑定 123
5.8.2 非强类型视图模型绑定 124
5.8.3 控制可被更新的Model属性 126
第6章 数据验证 136
6.1 MVC数据验证概述 136
6.2 验证属性的使用 138
6.2.1 添加验证属性 138
6.2.2 常用验证属性 142
6.2.3 自定义错误提示消息及其本地化 143
6.2.4 控制器操作和验证错误 145
6.3 自定义验证 146
6.3.1 自定义验证属性 146
6.3.2 IValidatableObject 149
6.4 扩充基于Entity Framework的数据模型 150
6.4.1 应用partial扩展原有Model 150
6.4.2 定义Model的Metadata 151
第7章 应用AJAX 158
7.1 AJAX辅助方法 158
7.1.1 AJAX的actionlink方法 159
7.1.2 AJAX表单 161
7.2 客户端验证 166
7.2.1 jQuery验证 166
7.2.2 自定义验证 169
7.3 自定义AJAX功能 171
7.3.1 jQuery UI 172
7.3.2 自动完成功能的实现 173
7.3.3 JSON和jQuery模板 174
7.4 提高AJAX性能 178
7.4.1 使用内容分发网络 178
7.4.2 脚本优化 178
第8章 网址路由 183
8.1 网址路由概述 183
8.1.1 路由比对与URL重写 183
8.1.2 定义路由 184
8.1.3 路由命名 187
8.1.4 路由常见用法 188
8.1.5 路由调试 191
8.2 自定义路由 192
8.3 Web窗体与网址路由 193
第9章 单元测试 210
9.1 单元测试与测试驱动开发 210
9.1.1 单元测试 210
9.1.2 测试驱动开发 211
9.2 MVC项目中的单元测试 213
9.2.1 默认单元测试 214
9.2.2 自定义单元测试 216
9.3 MVC单元测试技巧 216
9.3.1 控制器测试 217
9.3.2 应用Mock对象 217
9.3.3 路由测试 219
第10章 ASP.NET MVC高级技术 233
10.1 路由高级应用 233
10.1.1 扩展路由 233
10.1.2 可编辑路由 233
10.2 模板 237
10.2.1 默认模板 237
10.2.2 自定义模板 238
10.3 控制器高级应用 239
10.3.1 定义控制器 239
10.3.2 抽象基类 239
10.3.3 添加控制器操作 240
10.3.4 ActionResult应用 241
10.3.5 异步控制器 244