ASP.NET MVC 4高級編程(第4版)

內容介紹

MVC專家“夢之隊”對ASP.NET MVC 4的全新詮釋
由Microsoft專家和極受敬重的軟體開發社區負責人撰寫的《ASP.NET MVC 4高級編程(第4版)》將帶您學習最前沿的Web框架:ASP.NET MVC 4。本書開篇簡要介紹ASP.NET MVC框架,然後直奔主題,討論使用ASP.NET和最新MicrosoftMVC來構建數據驅動的動態網站需要了解的所有重要知識點。書中提供了按部就班的詳細指導和大量的代碼示例,引導讀者入門並逐漸掌握高級主題。
本書特色:
◆ 解釋ASP.NET MVC框架與“檔案頁”Web框架的不同之處
◆ 介紹控制器、視圖、模型、表單、HTML輔助方法、數據註解、驗證、成員資格、授權、安全和路由
◆ 著重介紹最核心的主題:Ajax、jQuery、NuGet、依賴注入、單元測試、MVC擴展和Razor
◆ 在實際的大型ASP.NET MVC案例網站NuGet Gallery中演示所有知識點
◆ 應上一版讀者提出的要求,本書涵蓋了其他一些緊貼實用的開發知識

作品目錄

第1章入門 1
1.1ASP.NET MVC簡介 1
1.1.1ASP.NET MVC如何適應
ASP.NET 1
1.1.2MVC模式簡介 2
1.1.3MVC在Web框架中的套用 2
1.1.4ASP.NET MVC 4的
發展歷程 3
1.1.5ASP.NET MVC 4概述 9
1.1.6ASP.NET Web API 10
1.1.7增強的默認項目模板 11
1.1.8使用jQuery Mobile的
移動項目模板 12
1.1.9顯示模式 13
1.1.10捆綁和微小框架 13
1.1.11包含開源庫 14
1.1.12其他功能 14
1.1.13開源發布 16
1.2創建ASP.NET MVC 4
應用程式 16
1.2.1創建ASP.NET MVC 4
應用程式的軟體要求 16
1.2.2安裝ASP.NET MVC 4 17
1.2.3創建ASP.NET MVC 4
應用程式 18
1.2.4New ASP.NET MVC 4
Project對話框 19
1.3ASP.NET MVC應用程式的
結構 23
1.4小結 27
第2章控制器 29
2.1控制器的角色 29
2.2示例應用程式:
MVC Music Store 31
2.3控制器基礎 33
2.3.1簡單示例:Home Controller 34
2.3.2創建第一個控制器 36
2.3.3控制器操作中的參數 39
2.4小結 41
第3章視圖 43
3.1視圖的作用 44
3.2指定視圖 45
3.3強類型視圖 47
3.4視圖模型 49
3.5添加視圖 50
3.6Razor視圖引擎 53
3.6.1Razor的概念 53
3.6.2代碼表達式 54
3.6.3HTML編碼 56
3.6.4代碼塊 58
3.6.5Razor語法示例 59
3.6.6布局 61
3.6.7ViewStart 64
3.7指定部分視圖 64
3.8小結 65
第4章模型 67
4.1為MVC Music Store建模 67
4.2為商店管理器構造基架 70
4.2.1基架的含義 70
4.2.2基架和實體框架 72
4.2.3執行基架模板 74
4.2.4執行基架代碼 77
4.3編輯專輯 81
4.3.1創建編輯專輯的資源 82
4.3.2回響編輯時的POST請求 84
4.4模型綁定 86
4.4.1DefaultModelBinder 87
4.4.2顯式模型綁定 88
4.5小結 89
第5章表單和HTML輔助方法 91
5.1表單的使用 91
5.1.1action和method特性 92
5.1.2GET方法還是POST方法 92
5.2HTML輔助方法 96
5.2.1自動編碼 96
5.2.2輔助方法的使用 97
5.2.3HTML輔助方法的
工作原理 98
5.2.4設定專輯編輯表單 98
5.2.5添加輸入元素 100
5.2.6輔助方法、模型和
視圖數據 104
5.2.7強類型輔助方法 106
5.2.8輔助方法和模型元數據 107
5.2.9模板輔助方法 107
5.2.10輔助方法和ModelState 108
5.3其他輸入輔助方法 109
5.3.1Html.Hidden 109
5.3.2Html.Password 109
5.3.3Html.RadioButton 109
5.3.4Html.CheckBox 110
5.4渲染輔助方法 110
5.4.1Html.ActionLink和
Html.RouteLink 110
5.4.2URL輔助方法 111
5.4.3Html.Partial和
Html.RenderPartial 112
5.4.4Html.Action和
Html.RenderAction 113
5.5小結 115
第6章數據註解和驗證 117
6.1為驗證註解訂單 118
6.1.1驗證註解的使用 119
6.1.2自定義錯誤提示訊息及其
本地化 123
6.1.3註解的後台原理 124
6.1.4控制器操作和驗證錯誤 125
6.2自定義驗證邏輯 127
6.2.1自定義註解 127
6.2.2IValidatableObject 130
6.3顯示和編輯註解 131
6.3.1Display 131
6.3.2ScaffoldColumn 132
6.3.3DisplayFormat 132
6.3.4ReadOnly 133
6.3.5DataType 133
6.3.6UIHint 134
6.3.7HiddenInput 134
6.4小結 134
第7章成員資格、授權和安全性 135
7.1使用Authorize特性登錄 137
7.1.1保護控制器操作 137
7.1.2Authorize特性在表單身份
驗證和AccountController
控制器中的用法 141
7.1.3Intranet Application模板中
的Windows Authentication 142
7.1.4整個控制器的安全性 143
7.1.5使用全局授權過濾器保障
整個應用程式安全 144
7.2要求角色成員使用Authorize
特性 145
7.3擴展角色和成員 146
7.4通過OAuth和OpenID的
外部登錄 146
7.4.1註冊外部登錄提供器 148
7.4.2配置OpenID提供器 148
7.4.3配置OAuth提供器 151
7.4.4外部登錄的安全性 152
7.5Web應用程式中的安全向量 153
7.5.1威脅:跨站腳本 153
7.5.2威脅:跨站請求偽造 163
7.5.3威脅:cookie盜竊 167
7.5.4威脅:重複提交 169
7.5.5威脅:開放重定向 171
7.6適當的錯誤報告和堆疊跟蹤 179
7.6.1使用配置轉換 180
7.6.2在生產環境中使用Retail
部署配置 181
7.6.3使用專門的錯誤日誌系統 181
7.7安全回顧和有用資源 182
7.8小結 182
第8章Ajax 185
8.1jQuery 185
8.1.1jQuery的特性 186
8.1.2非侵入式JavaScript 189
8.1.3jQuery的用法 190
8.2Ajax輔助方法 193
8.2.1Ajax的ActionLink方法 193
8.2.2HTML 5特性 195
8.2.3Ajax表單 196
8.3客戶端驗證 198
8.3.1jQuery驗證 198
8.3.2自定義驗證 200
8.4輔助方法之外 204
8.4.1jQuery UI 204
8.4.2使用jQuery UI實現自動
完成部件 205
8.4.3JSON和客戶端模板 208
8.5提高Ajax性能 213
8.5.1使用內容分發網路 213
8.5.2腳本最佳化 214
8.5.3捆綁和微小 214
8.6小結 215
第9章路由 217
9.1統一資源定位符——URL 218
9.2路由概述 219
9.2.1對比路由和URL重寫 219
9.2.2路由的定義 220
9.2.3路由命名 227
9.2.4MVC區域 229
9.2.5Catch-All參數 230
9.2.6段中的多個URL參數 231
9.2.7StopRoutingHandler和
IgnoreRoute 232
9.2.8路由的調試 233
9.3揭秘路由如何生成URL 234
9.3.1URL生成的高層次概述 235
9.3.2URL生成詳解 235
9.3.3外界路由值 237
9.3.4Route類生成URL的若干
示例 239
9.4揭秘路由如何綁定到操作 240
9.4.1高層次請求的路由管道 240
9.4.2路由數據 241
9.5自定義路由約束 241
9.6Web Forms和路由機制 242
9.7小結 243
第10章NuGet 245
10.1NuGet概述 245
10.2NuGet安裝 246
10.3以包的形式添加庫 248
10.3.1查找包 249
10.3.2安裝包 250
10.3.3更新包 253
10.3.4最近包 254
10.3.5包恢復 254
10.3.6包管理器控制台的用法 255
10.4創建包 258
10.4.1打包項目 258
10.4.2打包資料夾 259
10.4.3NuSpec檔案 259
10.4.4元數據 260
10.4.5依賴庫 261
10.4.6指定要包含的檔案 262
10.4.7工具 263
10.4.8框架和輪廓定位 266
10.4.9預發布包 267
10.5發布包 267
10.5.1發布到NuGet.org 267
10.5.2使用NuGet.exe 269
10.5.3包瀏覽器的用法 271
10.6小結 272
第11章ASP.NET Web API 273
11.1定義ASP.NET Web API 274
11.2Web API入門 274
11.3編寫API控制器 275
11.3.1檢查示例
ValuesController 275
11.3.2異步設計:
IHttpController 277
11.3.3傳入的操作參數 278
11.3.4操作返回值、錯誤和
異步 278
11.4配置Web API 279
11.4.1Web託管Web API的
配置 279
11.4.2自託管Web API的
配置 280
11.4.3第三方託管配置 281
11.5向Web API添加路由 281
11.6綁定參數 282
11.7過濾請求 284
11.8啟用依賴注入 285
11.9探索API編程 286
11.10跟蹤應用程式 287
11.11Web API示例:
ProductsController 287
11.12小結 290
第12章依賴注入 291
12.1軟體設計模式 291
12.1.1設計模式——
控制反轉模式 292
12.1.2設計模式——
服務定位器 294
12.1.3設計模式—— 依賴注入 298
12.2MVC中的依賴解析 300
12.2.1單一註冊服務 302
12.2.2複合註冊服務 302
12.2.3MVC中的任意對象 304
12.3Web API中的依賴解析 306
12.3.1Web API的單一註冊
服務 307
12.3.2Web API中的複合註冊
服務 308
12.3.3Web API中的任意對象 308
12.3.4對比MVC和Web API
中的依賴解析器 309
12.4小結 309
第13章單元測試 311
13.1單元測試和測試驅動開發
的意義 311
13.1.1單元測試的定義 312
13.1.2測試驅動開發的定義 313
13.2創建單元測試項目 316
13.2.1檢查默認單元測試 317
13.2.2隻測試自己編寫的代碼 320
13.3單元測試用於ASP.NET MVC
應用程式的技巧和竅門 321
13.3.1控制器測試 321
13.3.2路由測試 326
13.3.3驗證測試 328
13.4小結 332
第14章擴展ASP.NET MVC 333
14.1模型擴展 334
14.1.1把請求數據轉化為模型 334
14.1.2用元數據描述模型 339
14.1.3驗證模型 342
14.2視圖擴展 345
14.2.1自定義視圖引擎 345
14.2.2編寫HTML輔助方法 348
14.2.3編寫Razor輔助方法 349
14.3控制器擴展 349
14.3.1操作選擇 349
14.3.2操作過濾器 351
14.3.3提供自定義結果 353
14.4小結 354
第15章高級主題 355
15.1移動支持 355
15.1.1適應性呈現 356
15.1.2顯示模式 360
15.1.3Mobile Project模板 361
15.2高級Razor 363
15.2.1模板化的Razor委託 363
15.2.2視圖編譯 364
15.3高級視圖引擎 365
15.3.1視圖引擎配置 366
15.3.2查找視圖 367
15.3.3視圖本身 368
15.3.4備用視圖引擎 369
15.3.5新視圖引擎還是新
ActionResult 370
15.4高級基架 371
15.4.1自定義T4代碼模板 371
15.4.2NuGet包
MvcScaffolding 372
15.4.3更新的Add Controller
對話框選項 373
15.4.4使用庫模板 373
15.4.5添加基架器 375
15.4.6額外資源 375
15.5高級路由 375
15.5.1RouteMagic 376
15.5.2可編輯路由 376
15.6高級模板 380
15.6.1默認模板 380
15.6.2自定義模板 385
15.7高級控制器 386
15.7.1定義控制器:IController
接口 386
15.7.2ControllerBase抽象基類 387
15.7.3控制器類和操作 388
15.7.4ActionResult 390
15.7.5操作調用器 398
15.7.6使用異步控制器操作 401
15.8小結 408
第16章ASP.NET MVC實戰:
構建NuGet.org網站 409
16.1源碼與我們同在 410
16.2WebActivator 411
16.3ASP.NET動態數據 413
16.4異常日誌 416
16.5性能分析 417
16.6數據訪問 420
16.7EF基於代碼遷移 421
16.8成員資格 423
16.9其他有用的NuGet包 424
16.9.1T4MVC 424
16.9.2WebBackgrounder 425
16.9.3Lucene.NET 426
16.9.4AnglicanGeek.Markdown-
Mailer 426
16.9.5Ninject 426
16.10小結 427

相關詞條

熱門詞條

聯絡我們