第1章 从头开始学ASP.NET MVC框架 1
1.1 MVC与三层架构之间的抉择 2
视频教学:10分钟 2
1.1.1基础知识——MVC简介 2
1.1.2实例描述 4
1.1.3实例应用 4
1.1.4实例分析 4
1.2 MVC的应用现状 5
视频教学:5分钟 5
1.2.1实例描述 5
1.2.2实例应用 5
1.2.3实例分析 6
1.3 ASP.NET WebForm与MVC的争论 7
视频教学:11分钟 7
1.3.1基础知识——ASP.NET MVC概述 7
1.3.2实例描述 8
1.3.3实例应用 8
1.3.4实例分析 9
1.4创建第一个MVC项目 10
视频教学:12分钟 10
1.4.1基础知识——MVC核心命名空间 10
1.4.2基础知识——MVC应用程序目录结构 11
1.4.3基础知识——MVC路由 12
1.4.4基础知识——MVC项目中的模型、视图与控制器 13
1.4.5实例描述 15
1.4.6实例应用 16
1.4.7运行结果 17
1.4.8实例分析 17
1.5创建带单元测试的MVC项目 17
视频教学:6分钟 17
1.5.1实例描述 18
1.5.2实例应用 18
1.5.3运行结果 19
1.5.4实例分析 19
1.6 ASP.NET MVC应用程序运行流程 19
1.7常见问题解答 21
1.7.1 ASP.NET MVC的初级问题 21
1.7.2 ASP.NET MVC的编译软件是什么 22
1.8习题 22
第2章 畅通无阻——管理URLRouting 25
2.1 URLRouting介绍 26
视频教学:6分钟 26
2.1.1什么是URL 26
2.1.2什么是URLRouting 27
2.2自定义URLRouting规则 29
视频教学:8分钟 29
2.2.1基础知识 29
2.2.2实例描述 35
2.2.3实例应用 35
2.2.4实例分析 36
2.3使用RouteDebugger调试路由 37
视频教学:10分钟 37
2.3.1基础知识 37
2.3.2实例应用 37
2.4 URLRouting和URLRewrite的区别 40
视频教学:10分钟 40
2.5常见问题解答 42
2.5.1能否把URLRouting的配置信息保存到XML文件中 42
2.5.2具体系统的URLRouting配置会不会很多 42
2.6习题 43
第3章 Controller及Action 45
3.1创建Controller 46
视频教学:6分钟 46
3.1.1基础知识——Controller的要求 46
3.1.2实例描述 46
3.1.3实例应用 46
3.1.4运行结果 47
3.1.5实例分析 47
3.2获取产品列表 48
视频教学:8分钟 48
3.2.1基础知识——控制器类和动作 48
3.2.2实例描述 48
3.2.3实例应用 48
3.2.4运行结果 49
3.2.5实例分析 50
3.3没有MV的ASP.NET MVC 50
视频教学:4分钟 50
3.3.1基础知识——Response.Write方法 50
3.3.2实例描述 51
3.3.3实例应用 51
3.3.4运行结果 52
3.3.5实例分析 52
3.4提交购物车到订单 53
视频教学:15分钟 53
3.4.1基础知识——ActionResult类 53
3.4.2实例描述 57
3.4.3实例应用 57
3.4.4运行结果 58
3.4.5实例分析 58
3.5提交用户信息 59
视频教学:6分钟 59
3.5.1基础知识——映射参数 59
3.5.2实例描述 59
3.5.3实例应用 59
3.5.4运行结果 60
3.5.5实例分析 60
3.6页面动作跳转 61
视频教学:5分钟 61
3.6.1基础知识——RedirectToAction方法 61
3.6.2实例描述 61
3.6.3实例应用 61
3.6.4运行结果 62
3.6.5实例分析 63
3.7常见问题解答 63
3.7.1 ASP.NET MVC登录的问题 63
3.7.2 Controller如何返回DataTable给页面 64
3.7.3 Controller中的变量问题 64
3.7.4 ASP.NET MVC的传值问题 65
3.8习题 65
第4章 Model 67
4.1 Model简介 68
4.2 Model的重要性 68
4.3 ASP.NET MVC Model数据验证 69
视频教学:18分钟 69
4.3.1实例描述 69
4.3.2实例应用 69
4.3.3运行结果 71
4.3.4实例分析 72
4.4 MVC视图模板与数据基架的结合使用 72
视频教学:20分钟 72
4.4.1基础知识 73
4.4.2实例描述 73
4.4.3实例应用 73
4.4.4运行结果 79
4.4.5实例分析 80
4.5常见问题解答 80
4.5.1 ASP.NET MVC中的M、V和C可以各自独立开发吗 80
4.5.2 MVC架构中的模型部分做什么用 81
4.6习题 81
第5章 简单实现绚丽的界面 83
5.1 ASP.NET MVC中的V 84
视频教学:10分钟 84
5.1.1基础知识 84
5.1.2实例描述 87
5.1.3实例应用 87
5.1.4运行结果 88
5.1.5实例分析 89
5.2实现用户注册确认页面 89
视频教学:12分钟 90
5.2.1基础知识 90
5.2.2实例描述 91
5.2.3实例应用 92
5.2.4运行结果 93
5.2.5实例分析 94
5.3使用ViewModel传递Blog页面中的数据 94
视频教学:11分钟 94
5.3.1基础知识 94
5.3.2实例描述 96
5.3.3实例应用 96
5.3.4运行结果 98
5.3.5实例分析 99
5.4常见问题解答 99
5.4.1在View中能否操作Model 99
5.4.2在ASP.NET MVC中能否使用WebForm服务器端控件 99
5.5习题 100
第6章 页面辅助类 103
6.1页面辅助类HtmlHelper 104
视频教学:7分钟 104
6.1.1 HtmlHelper类 104
6.1.2为什么使用Html辅助方法 105
6.2使用动态表单上传个性头像 106
视频教学:13分钟 106
6.2.1基础知识 106
6.2.2实例描述 110
6.2.3实例应用 110
6.2.4运行结果 111
6.2.5实例分析 112
6.3使用页面辅助类扩展用户注册功能 112
视频教学:22分钟 112
6.3.1基础知识 112
6.3.2实例描述 115
6.3.3实例应用 115
6.3.4运行结果 116
6.3.5实例分析 117
6.4超链接扩展类 117
视频教学:12分钟 117
6.4.1 ActionLink()方法 117
6.4.2 RouteLink()方法 118
6.5使用局部视图处理站点搜索模块 120
视频教学:7分钟 120
6.5.1基础知识 120
6.5.2实例描述 120
6.5.3实例应用 121
6.5.4运行结果 121
6.5.5实例分析 122
6.6完善注册页面 122
视频教学:9分钟 122
6.6.1基础知识 122
6.6.2实例描述 124
6.6.3实例应用 124
6.6.4运行结果 125
6.6.5实例分析 125
6.7文本域扩展类 125
视频教学:4分钟 125
6.8登录验证 126
视频教学:9分钟 126
6.8.1基础知识 126
6.8.2实例描述 129
6.8.3实例应用 129
6.8.4运行结果 130
6.8.5实例分析 131
6.9 URL辅助类URLHelper 131
视频教学:6分钟 131
6.9.1 Action()方法 131
6.9.2 Content()方法 132
6.9.3 Encode()方法 133
6.9.4 RouteUrl()方法 133
6.10常见问题解答 134
6.10.1 Html.RenderPartial报错 134
6.10.2为什么ASP.NET MVC要使用BeginForm 134
6.11习题 135
第7章 在View中使用WebForm控件 137
7.1迭代显示一个员工信息列表 138
视频教学:7分钟 138
7.1.1实例描述 138
7.1.2实例应用 138
7.1.3运行结果 140
7.1.4实例分析 140
7.2为什么在MVC中可以使用WebForm控件 140
视频教学:8分钟 140
7.2.1软件帝国的超级武器——WebForm 140
7.2.2超级武器也有盲区 141
7.2.3软件帝国的快速反应 141
7.2.4 MVC和WebForm的互补 142
7.3使用Repeater显示商品信息列表 143
视频教学:11分钟 143
7.3.1基础知识 143
7.3.2实例描述 144
7.3.3实例应用 145
7.3.4运行结果 146
7.3.5实例分析 147
7.4使用DataList显示班级座位排列情况 147
视频教学:6分钟 147
7.4.1基础知识 147
7.4.2实例描述 147
7.4.3实例应用 148
7.4.4运行结果 149
7.4.5实例分析 149
7.5常见问题解答 150
7.5.1在 MVC中使用服务器端控件有什么规则 150
7.5.2怎样实现DropDownList控件的OnSelectedIndexChanged事件 150
7.6习题 151
第8章 自定义视图引擎 153
8.1使用代码拼凑的简单登录页面 154
视频教学:10分钟 154
8.1.1基础知识——视图生成的原理 154
8.1.2实例描述 155
8.1.3实例应用 156
8.1.4运行结果 157
8.1.5实例分析 158
8.2自定义视图引擎显示页面脚注信息 158
视频教学:9分钟 158
8.2.1实例描述 158
8.2.2实例应用 158
8.2.3运行结果 161
8.2.4实例分析 162
8.3引入一个模板引擎优化自定义的视图引擎 162
视频教学:7分钟 162
8.3.1基础知识——StringTemplate模板引擎 162
8.3.2实例描述 164
8.3.3实例应用 164
8.3.4实例分析 165
8.4博客文章页面 165
视频教学:15分钟 166
8.4.1基础知识——构建真正意义上的视图引擎 166
8.4.2实例描述 167
8.4.3实例应用 168
8.4.4运行结果 172
8.4.5实例分析 172
8.5使用母版页优化博客系统 173
视频教学:4分钟 173
8.5.1实例描述 173
8.5.2实例应用 173
8.5.3实例分析 175
8.6常见问题解答 176
8.6.1自定义视图引擎和WebForm视图引擎能否共存 176
8.6.2什么时候需要自定义视图引擎 176
8.7习题 177
第9章 过滤器 179
9.1应用于Action的过滤器 180
视频教学:7分钟 180
9.1.1基础知识——ActionFilter 180
9.1.2实例描述 180
9.1.3实例应用 181
9.1.4运行结果 182
9.1.5实例分析 182
9.2应用于Controller的过滤器 182
视频教学:6分钟 182
9.2.1基础知识——过滤Controller的方法 182
9.2.2实例描述 183
9.2.3实例应用 183
9.2.4运行结果 184
9.2.5实例分析 185
9.3规定页面的访问形式 185
视频教学:6分钟 185
9.3.1基础知识——AcceptVerbs类和HttpVerbs枚举 185
9.3.2实例描述 186
9.3.3实例应用 186
9.3.4运行结果 187
9.3.5实例分析 188
9.4规定Action的名称 189
视频教学:4分钟 189
9.4.1基础知识——ActionName 189
9.4.2实例描述 189
9.4.3实例应用 189
9.4.4运行结果 190
9.4.5实例分析 190
9.5缓存当前时间 190
视频教学:7分钟 191
9.5.1基础知识——OutputCache 191
9.5.2实例描述 191
9.5.3实例应用 191
9.5.4运行结果 192
9.5.5实例分析 193
9.6异常过滤器 193
视频教学:6分钟 193
9.6.1基础知识——HandleError 193
9.6.2实例描述 194
9.6.3实例应用 194
9.6.4运行结果 195
9.6.5实例分析 196
9.7授权过滤器 196
视频教学:7分钟 196
9.7.1基础知识——Authorize 196
9.7.2实例描述 197
9.7.3实例应用 197
9.7.4运行结果 197
9.7.5实例分析 198
9.8自定义动作过滤器 198
视频教学:5分钟 198
9.8.1基础知识——自定义过滤器 198
9.8.2实例描述 199
9.8.3实例应用 199
9.8.4运行结果 200
9.8.5实例分析 201
9.9常见问题解答 201
9.9.1 MVC过滤器 201
9.9.2使用ASP.NET MVC处理页面异常 201
9.10习题 202
第10章 MVC异常处理技巧 205
10.1全局异常处理 206
视频教学:9分钟 206
10.1.1基础知识——lExceptionFilter接口 206
10.1.2实例描述 207
10.1.3实例应用 207
10.1.4运行结果 208
10.1.5实例分析 209
10.2控制器异常处理 209
视频教学:5分钟 210
10.2.1实例应用 210
10.2.2运行结果 211
10.2.3实例分析 212
10.3过滤器异常处理 212
视频教学:5分钟 212
10.3.1实例应用 212
10.3.2运行结果 213
10.3.3实例分析 214
10.4路由异常处理 214
视频教学:6分钟 215
10.4.1实例应用 215
10.4.2运行结果 216
10.4.3实例分析 216
10.5动作异常处理 217
视频教学:5分钟 217
10.5.1实例应用 217
10.5.2运行结果 218
10.5.3实例分析 218
10.6常见问题解答 219
10.6.1 global.asax中的错误处理 219
10.6.2 ASP.NET MVC中的异常处理 220
10.6.3为什么Controller的HandleError属性不会覆盖Action的HandleError属性 222
10.7习题 223
第11章 MVC中jQuery的应用 225
11.1利用$()获取页面元素信息 226
视频教学:30分钟 226
11.1.1基础知识——jQuery选择器 226
11.1.2实例描述 230
11.1.3实例应用 231
11.1.4运行结果 233
11.1.5实例分析 233
11.2遍历所有的相同元素 233
视频教学:8分钟 234
11.2.1基础知识——搜索同辈元素 234
11.2.2实例描述 234
11.2.3实例应用 234
11.2.4运行结果 235
11.2.5实例分析 236
11.3突出显示图片 236
视频教学:6分钟 236
11.3.1基础知识——eq()方法 236
11.3.2实例描述 237
11.3.3实例应用 237
11.3.4运行结果 238
11.3.5实例分析 238
11.4获取调查表单的数据 238
视频教学:11分钟 238
11.4.1基础知识——val()法 238
11.4.2实例描述 239
11.4.3实例应用 240
11.4.4运行结果 242
11.4.5实例分析 242
11.5可修改字体颜色的新闻查看页 243
视频教学:11分钟 243
11.5.1基础知识——读取/设置CSS属性 243
11.5.2实例描述 244
11.5.3实例应用 244
11.5.4运行结果 245
11.5.5实例分析 246
11.6横向滑动的下拉菜单 246
视频教学:11分钟 246
11.6.1基础知识——jQuery动画效果 246
11.6.2实例描述 248
11.6.3实例应用 248
11.6.4运行结果 250
11.6.5实例分析 251
11.7定制一个中文日历 251
视频教学:11分钟 251
11.7.1基础知识——Ul库日期选择器组件 252
11.7.2实例描述 252
11.7.3实例应用 253
11.7.4运行结果 254
11.7.5实例分析 254
11.8浮动的注册条款 254
视频教学:10分钟 255
11.8.1基础知识——Ul库对话框组件 255
11.8.2实例描述 256
11.8.3实例应用 256
11.8.4运行结果 257
11.8.5实例分析 257
11.9常见问题解答 257
11.9.1如何给列表的偶数行添加背景色 257
11.9.2怎样得到jQuery数组对象中的某个对象 258
11.9.3怎样用jQuery获取具有相同class的text值 259
11.9.4如何让jQuery图片延长2秒显示 259
11.10习题 259
第12章 注入Ajax特性的MVC 263
12.1异步访问控制器动作 264
视频教学:14分钟 264
12.1.1基础知识——XMLHttpRequest对象 264
12.1.2实例描述 265
12.1.3实例应用 266
12.1.4运行结果 267
12.1.5实例分析 268
12.2使用Ajax获取数据 268
视频教学:8分钟 268
12.2.1基础知识——$.get()方法 268
12.2.2实例描述 269
12.2.3实例应用 269
12.2.4运行结果 270
12.2.5实例分析 271
12.3使用Ajax向页面发送数据 271
视频教学:7分钟 271
12.3.1基础知识——$.post()方法 271
12.3.2实例描述 272
12.3.3实例应用 272
12.3.4运行结果 273
12.3.5实例分析 274
12.4异步读取书籍名称 274
视频教学:11分钟 274
12.4.1基础知识——$.ajax()方法 274
12.4.2实例描述 276
12.4.3实例应用 276
12.4.4运行结果 277
12.4.5实例分析 277
12.5异步请求JSON数据 277
视频教学:7分钟 277
12.5.1基础知识——$.getJSON()方法 278
12.5.2实例描述 279
12.5.3实例应用 279
12.5.4运行结果 280
12.5.5实例分析 280
12.6提交Ajax表单 280
视频教学:7分钟 281
12.6.1基础知识——Ajax.BeginForm()方法 281
12.6.2实例描述 282
12.6.3实例应用 282
12.6.4运行结果 282
12.6.5实例分析 283
12.7获取当前时间 283
视频教学:8分钟 283
12.7.1基础知识——Ajax全局事件 283
12.7.2实例描述 284
12.7.3实例应用 284
12.7.4运行结果 285
12.7.5实例分析 285
12.8常见问题解答 286
12.8.1使用Ajax更新页面信息 286
12.8.2使用Ajax的getJSON()方法没反应 286
12.8.3为什么执行了jQuery中的Ajax还要刷新页面 287
12.8.4关于ASP.NET MVCBeginForm的问题 288
12.9习题 288
第13章 单元测试 291
13.1理解单元测试 292
视频教学:13分钟 292
13.1.1单元测试的意义 292
13.1.2 TDD简介 293
13.2使用单元测试验证站点路由 296
视频教学:11分钟 296
13.2.1基础知识 296
13.2.2实例描述 297
13.2.3实例应用 297
13.2.4运行结果 299
13.2.5实例分析 300
13.3测试HomeController的登录功能 300
视频教学:10分钟 300
13.3.1基础知识 300
13.3.2实例描述 301
13.3.3实例应用 301
13.3.4运行结果 303
13.3.5实例分析 304
13.4常见问题解答 304
13.4.1 TDD有什么好处 304
13.4.2都说ASP.NET MVC提高了可测试性,从哪里体现出来 304
13.5习题 305
第14章 MVC博客系统 307
14.1系统分析 308
14.1.1需求分析 308
14.1.2功能设计 308
14.2数据库设计 309
14.3系统设计 311
14.3.1创建MVC博客项目 311
14.3.2创建Helper 312
14.3.3创建母版页 312
14.3.4创建Linq To Sql实体 315
14.4文章模块 316
14.4.1查看文章列表 317
14.4.2查看文章详情 319
14.4.3按归档查看 320
14.4.4按标签查看 321
14.5用户管理模块 322
14.5.1用户登录 322
14.5.2用户退出 324
14.5.3修改资料 324
14.6后台管理模块 328
14.6.1栏目管理 328
14.6.2文章管理 331
14.6.3全局信息配置 336
14.7总结 337
第15章 通讯录系统 339
15.1系统分析 340
15.1.1开发及运行环境 340
15.1.2功能模块设计 340
15.1.3数据库设计 340
15.2系统具体实现 342
15.2.1用户登录模块 342
15.2.2用户管理模块 347
15.2.3照片管理模块 350
15.2.4权限分析模块 354
15.2.5留言本管理模块 354
15.3总结 358
附录 习题答案 359