第1章 ASP.NET + MVC 1
1.1 傳統MVC模式 2
1.1.1 自治視圖 2
1.1.2 什麼是MVC模式 3
1.2 MVC的變體 4
1.2.1 MVP 4
1.2.2 Model 2 12
1.2.3 ASP.NETMVC與Model 2 13
1.3 IIS/ASP.NET管道 14
1.3.1 IIS 5.x與ASP.NET 14
1.3.2 IIS 6.0與ASP.NET 15
1.3.3 IIS 7.0與ASP.NET 17
1.3.4 ASP.NET管道 20
1.4 ASP.NET MVC是如何運行的 25
1.4.1 建立在“迷你版”ASP.NET MVC上的Web應用 25
1.4.2 URL路由 27
1.4.3 Controller的激活 31
1.4.4 Action的執行 35
本章小結 39
第2章 URL路由 41
2.1 ASP.NET路由係統 42
2.1.1 請求URL與物理文件的分離 42
2.1.2 實例演示:通過URL路由實現請求地址與.aspx頁麵的映射(S201) 43
2.1.3 Route與RouteTable 46
2.1.4 路由映射 52
2.1.5 根據路由規則生成URL 59
2.2 ASP.NET MVC擴展 61
2.2.1 路由映射 61
2.2.2 實例演示:注冊路由映射與查看路由信息(S208) 62
2.2.3 缺省URL參數 65
2.2.4 基於Area的路由映射 67
2.2.5 鏈接和URL的生成 71
2.3 動態HttpHandler映射 78
2.3.1 UrlRoutingModule 78
2.3.2 PageRouteHandler與MvcRouteHandler 79
2.3.3 ASP.NET路由係統擴展 80
本章小結 85
第3章 Controller的激活 86
3.1 總體設計 87
3.1.1 Controller 87
3.1.2 ControllerFactory 92
3.1.3 ControllerBuilder 93
3.1.4 Controller的激活與URL路由 99
3.2 默認實現 101
3.2.1 Controller類型的解析 102
3.2.2 Controller類型的緩存 105
3.2.3 Controller的釋放和會話狀態行為的控製 106
3.3 IoC的應用 108
3.3.1 從Unity來認識IoC 108
3.3.2 Controller與Model的分離 110
3.3.3 基於IoC的ControllerFactory 111
3.3.4 基於IoC的ControllerActivator 117
3.3.5 基於IoC的DependencyResolver 119
本章小結 122
第4章 Model元數據的解析 123
4.1 Model元數據及其定製 124
4.1.1 Model元數據層次化結構 124
4.1.2 基本Model元數據信息 125
4.1.3 Model元數據的定製 128
4.1.4 IMetadataAware接口 142
4.2 Model元數據與Model模闆 146
4.2.1 實例演示:通過模闆將布爾值顯示為RadioButton(S409) 147
4.2.2 預定義模闆 148
4.2.3 DataTypeName與模闆名稱 157
4.2.4 模闆的獲取與執行 160
4.2.5 實例演示:通過定製Model元數據和自定義模闆 實現預定義列錶的呈現
(S412) 164
4.3 Model元數據的提供機製 172
4.3.1 再談ModelMetadata 172
4.3.2 ModelMetadataProvider 176
4.3.3 Model元數據提供係統的擴展 180
本章小結 182
第5章 Model的綁定 183
5.1 ControllerDescriptor、ActionDescriptor與ParameterDescriptor 184
5.1.1 ControllerDescriptor 184
5.1.2 ActionDescriptor 189
5.1.3 ParameterDescriptor 193
5.2 ValueProvider 196
5.2.1 NameValueCollectionValueProvider 197
5.2.2 DictionaryValueProvider 203
5.2.3 ValueProviderFactory 211
5.2.4 ValueProviderFactories 211
5.3 ModelBinder 215
5.3.1 ModelBinder與ModelBinderProvider 215
5.3.2 ModelState與Model綁定 223
5.3.3 ModelBindingContext的創建 227
5.4 Model綁定的默認實現 228
5.4.1 簡單類型 229
5.4.2 復雜類型 232
5.4.3 數組 238
5.4.4 集閤 246
5.4.5 字典 248
本章小結 252
第6章 Model的驗證 254
6.1 ModelValidator與ModelValidatorProvider 255
6.1.1 ModelValidator 255
6.1.2 ModelValidatorProvider 258
6.1.3 ModelValidatorProviders 264
6.2 Model綁定與驗證 269
6.2.1 ModelState 269
6.2.2 驗證消息的呈現 272
6.2.3 Model綁定中的驗證 278
6.3 基於數據注解特性的Model驗證 283
6.3.1 ValidationAttribute特性 283
6.3.2 DataAnnotationsModelValidator 290
6.3.3 DataAnnotationsModelValidatorProvider 292
6.3.4 將ValidationAttribute應用到參數上 295
6.3.5 一種Model類型,多種驗證規則 300
6.4 客戶端驗證 307
6.4.1 jQuery驗證 307
6.4.2 基於jQuery的Model驗證 311
6.4.3 自定義驗證 315
本章小結 318
第7章 Action的執行 320
7.1 異步Action的定義 321
7.1.1 基於綫程池的請求處理機製 321
7.1.2 兩種異步Action方法的定義 322
7.1.3 AsyncManager 324
7.2 Action方法的執行 330
7.2.1 MvcHandler對請求的處理 330
7.2.2 Controller的執行 330
7.2.3 ActionInvoker的執行 331
7.2.4 ControllerDescriptor的同步與異步 336
7.2.5 ActionDescriptor的執行 339
7.3 篩選器的執行 345
7.3.1 Filter及其提供機製 345
7.3.2 AuthorizationFilter 355
7.3.3 ActionFilter 365
7.3.4 ExceptionFilter 371
7.3.5 實例演示:集成EntLib實現自動化異常處理(S713, S714, S715) 373
7.3.6 ResultFilter 387
本章小結 388
第8章 View的呈現 390
8.1 ActionResult 391
8.1.1 EmptyResult 391
8.1.2 ContentResult 392
8.1.3 FileResult 398
8.1.4 JavaScriptResult 402
8.1.5 JsonResult 405
8.1.6 HttpStatusCodeResult 408
8.1.7 RedirectResult/RedirectToRouteResult 409
8.2 ViewResult與ViewEngine 411
8.2.1 View引擎中的View 411
8.2.2 ViewEngine 413
8.2.3 ViewResult的執行 415
8.3 Razor引擎 423
8.3.1 View的編譯原理 423
8.3.2 WebViewPage與WebViewPage<TModel> 427
8.3.3 RazorView 432
8.3.4 RazorViewEngine 441
本章小結 444
第9章 ASP.NET Web API 445
9.1 Web、REST與Web API 446
9.1.1 Web如此簡單 446
9.1.2 REST是什麼 447
9.1.3 ASP.NET Web API 450
9.2 服務端管道 458
9.2.1 ASP.NET Web API管道式設計 459
9.2.2 HttpMessageHandler 461
9.2.3 HttpServer 464
9.2.4 實例演示:自定義HttpMessageHandler實現HTTP方法重寫(S903) 469
9.3 HttpControllerDispatcher 471
9.3.1 HttpController的激活 472
9.3.2 HttpController的執行 485
9.3.3 Action的選擇 486
9.3.4 Model元數據的解析 492
9.3.5 Action參數綁定 495
9.3.6 Model驗證 508
9.3.7 Action的執行與結果的響應 512
9.4 Web API的調用和自我寄宿 516
9.4.1 HttpClient 516
9.4.2 HttpSelfHostServer 521
本章小結 525
第10章 案例實踐 527
10.1 功能性簡介 528
10.1.1 商品列錶的呈現 528
10.1.2 定購商品 530
10.1.3 登錄與錯誤頁麵 531
10.2 設計概述 532
10.2.1 Controller-Service-Repository 532
10.2.2 IoC的應用 536
10.2.3 AOP的應用 539
10.2.4 異常處理 545
10.3 編程實現 546
10.3.1 數據錶的創建 546
10.3.2 Repository 548
10.3.3 Service 552
10.3.4 路由注冊和布局 555
10.3.5 ProductController 558
10.3.6 OrderController 565
10.3.7 AccountController 571
本章小結 574
附錄A 實例列錶 575
· · · · · · (
收起)