目 錄
第1章 ASP.NET MVC概述 1
1.1 ASP.NET MVC簡介 1
1.1.1 初識MVC模式 1
1.1.2 MVC模式在Web開發(fā)中的應用 2
1.1.3 ASP.NET與ASP.NET MVC 3
1.1.4 ASP.NET MVC現狀 4
1.2 MVC模式下的Web項目開發(fā) 5
1.2.1 開發(fā)環(huán)境 5
1.2.2 應用程序的結構 5
1.3 ASP.NET MVC生命周期 10
第2章 初識ASP.NET MVC項目開發(fā) 12
2.1 示例項目概述——在線書店 12
2.2 利用項目模板創(chuàng)建ASP.NET MVC項目 14
2.3 創(chuàng)建控制器 16
2.4 創(chuàng)建數據模型 19
2.5 創(chuàng)建視圖 23
2.6 實現訂單提交功能 27
2.6.1 在動作中接收連接參數 27
2.6.2 在視圖中創(chuàng)建表單 30
2.6.3 將視圖中的表單數據傳遞到動作 32
第3章 數據模型 41
3.1 數據模型概述 41
3.2 創(chuàng)建數據模型 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 創(chuàng)建基于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的創(chuàng)建與結構 62
4.1.2 Controller的執(zhí)行過程 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 動作執(zhí)行結果 81
4.5.1 常用的動作執(zhí)行結果類 82
4.5.2 ViewData與TempData 85
第5章 視圖技術 99
5.1 視圖概述 99
5.2 創(chuàng)建與指定視圖 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 創(chuàng)建分部視圖 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 使用內容分發(fā)網絡 178
7.4.2 腳本優(yōu)化 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 單元測試與測試驅動開發(fā) 210
9.1.1 單元測試 210
9.1.2 測試驅動開發(fā) 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