《ASP.NET MVC 4框架揭秘》

《ASP.NET MVC 4框架揭秘》

ASP.NET MVC 4框架揭秘》


GITHUB:https://github.com/jash-git/Jash-good-idea-20220101-001/tree/main/ASP.NET


封面; 1

書名頁; 2

版權頁; 3

前言; 4

目錄; 10

1 ASP.NET+MVC; 16

    1.1 傳統MVC模式; 17

        1.1.1 自治視圖; 17

        1.1.2 什麼是MVC模式; 18

    1.2 MVC的變體; 19

        1.2.1 MVP; 19

        1.2.2 Model 2; 27

        1.2.3 ASP.NETMVCModel 2; 28

    1.3 IIS/ASP.NET管道; 29

        1.3.1 IIS 5.xASP.NET; 29

        1.3.2 IIS 6.0ASP.NET; 30

        1.3.3 IIS 7.0ASP.NET; 32

        1.3.4 ASP.NET管道; 35

    1.4 ASP.NET MVC是如何運行的; 40

        1.4.1 建立在“迷你版” ASP.NET MVC上的Web應用; 40

        1.4.2 URL路由; 42

        1.4.3 Controller的啟動; 46

        1.4.4 Action的執行; 50

2 URL路由; 56

    2.1 ASP.NET路由系統; 57

        2.1.1 請求URL與物理檔的分離; 57

        2.1.2 實例演示:通過URL路由實現請求位址與.aspx頁面的映射(S201; 58

        2.1.3 RouteRouteTable; 61

        2.1.4 路由映射; 67

        2.1.5 根據路由規則生成URL; 74

    2.2 ASP.NET MVC擴展; 76

        2.2.1 路由映射; 76

        2.2.2 實例演示:註冊路由映射與查看路由資訊(S208; 77

        2.2.3 缺省URL參數; 80

        2.2.4 基於Area的路由映射; 82

        2.2.5 連結和URL的生成; 86

    2.3 動態HttpHandler映射; 93

        2.3.1 UrlRoutingModule; 93

        2.3.2 PageRouteHandlerMvcRouteHandler; 94

        2.3.3 ASP.NET路由系統擴展; 95

3 Controller的啟動; 101

    3.1 總體設計; 102

        3.1.1 Controller; 102

        3.1.2 ControllerFactory; 107

        3.1.3 ControllerBuilder; 108

        3.1.4 Controller的啟動與URL路由; 114

    3.2 默認實現; 116

        3.2.1 Controller類型的解析; 117

        3.2.2 Controller類型的緩存; 120

        3.2.3 Controller的釋放和會話狀態行為的控制; 121

    3.3 IoC的應用; 123

        3.3.1 Unity來認識IoC; 123

        3.3.2 ControllerModel的分離; 125

        3.3.3 基於IoCControllerFactory; 126

        3.3.4 基於IoCControllerActivator; 132

        3.3.5 基於IoCDependencyResolver; 134

4 Model中繼資料的解析; 138

    4.1 Model中繼資料及其定制; 139

        4.1.1 Model中繼資料層次化結構; 139

        4.1.2 基本Model中繼資料資訊; 140

        4.1.3 Model中繼資料的定制; 143

        4.1.4 IMetadataAware介面; 157

    4.2 Model中繼資料與Model範本; 161

        4.2.1 實例演示:通過範本將布林值顯示為RadioButtonS409; 162

        4.2.2 預定義範本; 163

        4.2.3 DataTypeName與範本名稱; 172

        4.2.4 範本的獲取與執行; 175

        4.2.5 實例演示:通過定制Model中繼資料和自訂範本實現預定義清單的呈現(S412; 179

    4.3 Model中繼資料的提供機制; 187

        4.3.1 再談ModelMetadata; 187

        4.3.2 ModelMetadataProvider; 191

        4.3.3 Model中繼資料提供系統的擴展; 195

5 Model的綁定; 198

    5.1 ControllerDescriptorActionDescriptorParameterDescriptor; 199

        5.1.1 ControllerDescriptor; 199

        5.1.2 ActionDescriptor; 204

        5.1.3 ParameterDescriptor; 208

    5.2 ValueProvider; 211

        5.2.1 NameValueCollectionValueProvider; 212

        5.2.2 DictionaryValueProvider; 218

        5.2.3 ValueProviderFactory; 226

        5.2.4 ValueProviderFactories; 226

    5.3 ModelBinder; 230

        5.3.1 ModelBinderModelBinderProvider; 230

        5.3.2 ModelStateModel綁定; 238

        5.3.3 ModelBindingContext的創建; 242

    5.4 Model綁定的默認實現; 243

        5.4.1 簡單類型; 244

        5.4.2 複雜類型; 247

        5.4.3 陣列; 253

        5.4.4 集合; 261

        5.4.5 字典; 263

6 Model的驗證; 269

    6.1 ModelValidatorModelValidatorProvider; 270

        6.1.1 ModelValidator; 270

        6.1.2 ModelValidatorProvider; 273

        6.1.3 ModelValidatorProviders; 279

    6.2 Model綁定與驗證; 284

        6.2.1 ModelState; 284

        6.2.2 驗證消息的呈現; 287

        6.2.3 Model綁定中的驗證; 293

    6.3 基於資料注解特性的Model驗證; 298

        6.3.1 ValidationAttribute特性; 298

        6.3.2 DataAnnotationsModelValidator; 305

        6.3.3 DataAnnotationsModelValidatorProvider; 307

        6.3.4 ValidationAttribute應用到參數上; 310

        6.3.5 一種Model類型,多種驗證規則; 315

    6.4 用戶端驗證; 322

        6.4.1 jQuery驗證; 322

        6.4.2 基於jQueryModel驗證; 326

        6.4.3 自訂驗證; 330

7 Action的執行; 335

    7.1 非同步Action的定義; 336

        7.1.1 基於執行緒池的請求處理機制; 336

        7.1.2 兩種非同步Action方法的定義; 337

        7.1.3 AsyncManager; 339

    7.2 Action方法的執行; 345

        7.2.1 MvcHandler對請求的處理; 345

        7.2.2 Controller的執行; 345

        7.2.3 ActionInvoker的執行; 346

        7.2.4 ControllerDescriptor的同步與非同步; 351

        7.2.5 ActionDescriptor的執行; 354

    7.3 篩選器的執行; 360

        7.3.1 Filter及其提供機制; 360

        7.3.2 AuthorizationFilter; 370

        7.3.3 ActionFilter; 380

        7.3.4 ExceptionFilter; 386

        7.3.5 實例演示:集成EntLib實現自動化異常處理(S713, S714, S715; 388

        7.3.6 ResultFilter; 402

8 View的呈現; 405

    8.1 ActionResult; 406

        8.1.1 EmptyResult; 406

        8.1.2 ContentResult; 407

        8.1.3 FileResult; 413

        8.1.4 JavaScriptResult; 417

        8.1.5 JsonResult; 420

        8.1.6 HttpStatusCodeResult; 423

        8.1.7 RedirectResult/RedirectToRouteResult; 424

    8.2 ViewResultViewEngine; 426

        8.2.1 View引擎中的View; 426

        8.2.2 ViewEngine; 428

        8.2.3 ViewResult的執行; 430

    8.3 Razor引擎; 438

        8.3.1 View的編譯原理; 438

        8.3.2 WebViewPageWebViewPage&lt\;TModel&gt\;; 442

        8.3.3 RazorView; 447

        8.3.4 RazorViewEngine; 456

9 ASP.NET Web API; 460

    9.1 WebRESTWeb API; 461

        9.1.1 Web如此簡單; 461

        9.1.2 REST是什麼; 462

        9.1.3 ASP.NET Web API; 465

    9.2 服務端管道; 473

        9.2.1 ASP.NET Web API管道式設計; 474

        9.2.2 HttpMessageHandler; 476

        9.2.3 HttpServer; 479

        9.2.4 實例演示:自訂HttpMessageHandler實現HTTP方法重寫(S903; 484

    9.3 HttpControllerDispatcher; 486

        9.3.1 HttpController的啟動; 487

        9.3.2 HttpController的執行; 500

        9.3.3 Action的選擇; 501

        9.3.4 Model中繼資料的解析; 507

        9.3.5 Action參數綁定; 510

        9.3.6 Model驗證; 523

        9.3.7 Action的執行與結果的回應; 527

    9.4 Web API的調用和自我寄宿; 531

        9.4.1 HttpClient; 531

        9.4.2 HttpSelfHostServer; 536

10章 案例實踐; 542

    10.1 功能性簡介; 543

        10.1.1 商品列表的呈現; 543

        10.1.2 定購商品; 545

        10.1.3 登錄與錯誤頁面; 546

    10.2 設計概述; 547

        10.2.1 Controller-Service-Repository; 547

        10.2.2 IoC的應用; 551

        10.2.3 AOP的應用; 554

        10.2.4 異常處理; 560

    10.3 程式設計實現; 561

        10.3.1 資料表的創建; 561

        10.3.2 Repository; 563

        10.3.3 Service; 567

        10.3.4 路由註冊和佈局; 570

        10.3.5 ProductController; 573

        10.3.6 OrderController; 580

        10.3.7 AccountController; 586

附錄實例清單; 590

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *