關(guān)于我們
書單推薦
新書推薦
|
精通ASP.NET Core MVC 第7版
本書詳細(xì)解釋ASP.NET Core MVC的架構(gòu)、功能和應(yīng)用,深入闡述構(gòu)建現(xiàn)代可擴(kuò)展的Web應(yīng)用程序的工具、技術(shù)和方法,揭示如何為.NET Core平臺(tái)創(chuàng)建輕型的移動(dòng)端應(yīng)用程序。本書主要內(nèi)容包括MVC模式、C#基本特性、Razor、Visual Studio、MVC應(yīng)用程序的單元測(cè)試、實(shí)際應(yīng)用程序的創(chuàng)建、URL路由、高級(jí)路由特性、控制器、依賴注入、過濾器、API控制器、視圖、視圖組件、標(biāo)簽助手、模型綁定、模型驗(yàn)證、ASP.NET Core Identity、模型約定和操作約束等。
本書適合.NET開發(fā)人員和 Web開發(fā)人員閱讀,也可供計(jì)算機(jī)相關(guān)專業(yè)的師生閱讀。
1.暢銷書升級(jí)版,詳細(xì)介紹了ASP.NET Core MVC的架構(gòu)、功能和應(yīng)用,講述了開發(fā)可擴(kuò)展的Web應(yīng)用程序的工具和技術(shù)。
2.結(jié)合具體實(shí)例和代碼,展示了ASP.NET Core MVC的方方面面,揭示了如何用ASP.NET Core MV構(gòu)建Web應(yīng)用程序。
3.第7版新增了大量內(nèi)容:
·Visual Studio、C#、Entity Framework、.NET Core 2的功能;
·配置應(yīng)用程序和元包的方法;
·Visual Studio Code的用法和在非Windows平臺(tái)上使用.NET Core的方法。
通過閱讀本書,你可以實(shí)現(xiàn)以下目標(biāo):
·透徹理解ASP.NET Core MVC框架;
·理解MVC和測(cè)試驅(qū)動(dòng)的開發(fā)的原理;
·學(xué)會(huì)在日常工作中應(yīng)用ASP.NET Core MVC的功能;
·明白如何為單頁應(yīng)用程序創(chuàng)建REST風(fēng)格的Web服務(wù);
·基于已有的MVC知識(shí)快速搭建新的編程模型。
Adam Freeman 是一位經(jīng)驗(yàn)豐富的IT 專家,曾在一系列公司擔(dān)任高級(jí)職務(wù),最后的職務(wù)是一家全球性銀行的首席技術(shù)官(Chief Technology Officer,CTO)和首席運(yùn)營官(Chief Operating Officer, COO)。退休以后,他喜歡寫作和長跑。
譯者簡介
郝冠軍,微軟最有價(jià)值專家,《ASP.NET 本質(zhì)論》作者。超過 20 年開發(fā)經(jīng)驗(yàn),擁有從前端到后端豐富的開發(fā)經(jīng)驗(yàn),有多個(gè)項(xiàng)目的架構(gòu)設(shè)計(jì)、系統(tǒng)開發(fā)和實(shí)施落經(jīng)驗(yàn)地,對(duì)軟件開發(fā)有著深刻理解。
孫臻,現(xiàn)在中國海洋大學(xué)就職,長期從事ASP.NET及相關(guān)開發(fā),曾參與錄制“MSDN Webcast:Windows Phone 8 ”開發(fā)快速入門系列課程,現(xiàn)專注于ASP.NET Core及UWP 開發(fā)。
閆曉迪,微軟最有價(jià)值專家,現(xiàn)任新西蘭某公司高級(jí)開發(fā)工程師。10余年軟件開發(fā)經(jīng)驗(yàn),涉及Web、桌面、移動(dòng)、云等多種平臺(tái)和技術(shù)。
張淯易,畢業(yè)于桂林電子科技大學(xué),獲信息與通信工程碩士學(xué)位,新一代人工智能產(chǎn)業(yè)聯(lián)盟隱私保護(hù)組主要會(huì)員,就職于海信數(shù)字多媒體國家重點(diǎn)實(shí)驗(yàn)室。主要從事人工智能領(lǐng)域中知識(shí)圖譜、自然語言處理、隱私保護(hù)等方向的相關(guān)工作。著有SCI兩篇,擁有專利十余篇,參與了IEEEP2807等大量知識(shí)圖譜、隱私保護(hù)相關(guān)的國際、國家標(biāo)準(zhǔn)工作。
目 錄
第 一部分 ASP.NET Core MVC
第 1章 ASP.NET Core MVC背景 2
1.1 ASP.NET Core MVC的歷史 2
1.1.1 ASP.NET Web Forms 2
1.1.2 起初的MVC框架 3
1.2 ASP.NET Core 3
1.2.1 ASP.NET Core MVC 2的新特性 4
1.2.2 ASP.NET Core MVC的主要優(yōu)點(diǎn) 4
1.3 預(yù)備知識(shí) 6
1.4 本書的結(jié)構(gòu) 6
1.5 如何獲取本書的示例代碼 6
1.6 聯(lián)系作者 6
1.7 小結(jié) 7
第 2章 首個(gè)MVC應(yīng)用程序 8
2.1 安裝Visual Studio 8
2.2 安裝.NET Core 2.0 SDK 9
2.3 創(chuàng)建新的ASP.NET Core MVC項(xiàng)目 9
2.3.1 添加控制器 11
2.3.2 理解路由 13
2.4 渲染頁面 14
2.4.1 創(chuàng)建并渲染視圖 14
2.4.2 添加動(dòng)態(tài)輸出 16
2.5 創(chuàng)建一個(gè)簡單的數(shù)據(jù)錄入程序 17
2.5.1 設(shè)置場(chǎng)景 17
2.5.2 設(shè)計(jì)數(shù)據(jù)模型 18
2.5.3 創(chuàng)建第二個(gè)操作和強(qiáng)類型視圖 18
2.5.4 鏈接操作方法 19
2.5.5 建立表單 20
2.5.6 接收表單數(shù)據(jù) 21
2.5.7 顯示響應(yīng) 25
2.5.8 添加驗(yàn)證 27
2.5.9 設(shè)置內(nèi)容樣式 31
2.6 小結(jié) 35
第3章 MVC模式、項(xiàng)目與約定 36
3.1 MVC簡史 36
3.2 MVC模式 36
3.2.1 模型 36
3.2.2 控制器 37
3.2.3 視圖 37
3.2.4 MVC的ASP.NET實(shí)現(xiàn) 37
3.3 MVC與其他模式的比較 38
3.3.1 “智能UI”模式 38
3.3.2 理解模型-視圖架構(gòu) 39
3.3.3 經(jīng)典的3層架構(gòu) 39
3.3.4 MVC的多樣性 40
3.4 ASP.NET Core MVC項(xiàng)目 40
3.4.1 創(chuàng)建項(xiàng)目 41
3.4.2 關(guān)于MVC的約定 43
3.5 小結(jié) 44
第4章 C#基本特性 45
4.1 準(zhǔn)備示例項(xiàng)目 45
4.1.1 啟用ASP.NET Core MVC 46
4.1.2 創(chuàng)建MVC應(yīng)用程序組件 47
4.2 運(yùn)用null條件運(yùn)算符 48
4.2.1 null條件運(yùn)算符的連接運(yùn)算 49
4.2.2 聯(lián)合使用null條件運(yùn)算符和
null合并運(yùn)算符 50 4.3 使用自動(dòng)實(shí)現(xiàn)屬性 51 4.3.1 初始化自動(dòng)實(shí)現(xiàn)屬性 51 4.3.2 創(chuàng)建只讀的自動(dòng)實(shí)現(xiàn)屬性 52 4.4 使用字符串插值 53 4.5 使用對(duì)象和集合初始化器 54 4.6 模式匹配 56 4.7 使用擴(kuò)展方法 58 4.7.1 將擴(kuò)展方法應(yīng)用于接口 59 4.7.2 創(chuàng)建過濾擴(kuò)展方法 60 4.8 使用Lambda表達(dá)式 61 4.8.1 定義函數(shù) 63 4.8.2 使用Lambda表達(dá)式實(shí)現(xiàn)方法和 屬性 65 4.9 使用類型推斷和匿名類型 66 4.10 使用異步方法 68 4.10.1 直接使用任務(wù) 69 4.10.2 使用async和await關(guān)鍵字 70 4.11 獲取名稱 71 4.12 小結(jié) 72 第5章 使用Razor 73 5.1 準(zhǔn)備示例項(xiàng)目 73 5.1.1 定義模型 74 5.1.2 創(chuàng)建控制器 74 5.1.3 創(chuàng)建視圖 75 5.2 使用模型對(duì)象 75 5.3 使用布局 78 5.3.1 創(chuàng)建布局 78 5.3.2 使用布局 80 5.3.3 應(yīng)用視圖啟動(dòng)文件 80 5.4 使用Razor表達(dá)式 81 5.4.1 插入數(shù)據(jù) 82 5.4.2 設(shè)置屬性值 83 5.4.3 使用條件語句 84 5.4.4 枚舉數(shù)組和集合 85 5.5 小結(jié) 86 第6章 使用Visual Studio 87 6.1 準(zhǔn)備示例項(xiàng)目 87 6.1.1 創(chuàng)建模型 87 6.1.2 創(chuàng)建控制器和視圖 88 6.2 管理軟件包 89 6.2.1 NuGet 89 6.2.2 Bower 91 6.3 迭代開發(fā) 93 6.3.1 修改Razor視圖 93 6.3.2 對(duì)C#類進(jìn)行更改 94 6.3.3 使用瀏覽器鏈接 99 6.4 部署JavaScript和CSS 102 6.4.1 啟用靜態(tài)內(nèi)容傳遞 102 6.4.2 為項(xiàng)目添加靜態(tài)內(nèi)容 103 6.4.3 更新視圖 104 6.4.4 MVC應(yīng)用程序中的打包和 縮小 105 6.5 小結(jié) 108 第7章 對(duì)MVC應(yīng)用程序進(jìn)行 單元測(cè)試 109 7.1 準(zhǔn)備示例項(xiàng)目 109 7.1.1 啟用內(nèi)置的標(biāo)簽助手 109 7.1.2 為控制器添加操作方法 110 7.1.3 創(chuàng)建數(shù)據(jù)輸入表單 110 7.1.4 更新Index視圖 111 7.2 測(cè)試MVC應(yīng)用程序 112 7.2.1 創(chuàng)建單元測(cè)試項(xiàng)目 112 7.2.2 創(chuàng)建項(xiàng)目引用 113 7.2.3 編寫并運(yùn)行單元測(cè)試 115 7.2.4 隔離組件以進(jìn)行單元測(cè)試 116 7.3 改進(jìn)單元測(cè)試 123 7.3.1 參數(shù)化單元測(cè)試 123 7.3.2 改進(jìn)假的實(shí)現(xiàn) 126 7.4 小結(jié) 129 第8章 SportsStore應(yīng)用程序 130 8.1 準(zhǔn)備開始 130 8.1.1 創(chuàng)建MVC項(xiàng)目 130 8.1.2 創(chuàng)建單元測(cè)試項(xiàng)目 133 8.1.3 測(cè)試和啟動(dòng)應(yīng)用程序 134 8.2 開始領(lǐng)域模型開發(fā) 134 8.2.1 創(chuàng)建存儲(chǔ)庫 135 8.2.2 創(chuàng)建虛擬存儲(chǔ)庫 135 8.2.3 注冊(cè)存儲(chǔ)庫服務(wù) 136 8.3 顯示產(chǎn)品清單 137 8.3.1 添加一個(gè)控制器 137 8.3.2 添加并配置視圖 138 8.3.3 設(shè)置默認(rèn)路由 139 8.3.4 運(yùn)行應(yīng)用程序 140 8.4 準(zhǔn)備數(shù)據(jù)庫 140 8.4.1 安裝Entity Framework Core 工具包 141 8.4.2 創(chuàng)建數(shù)據(jù)庫類 141 8.4.3 創(chuàng)建存儲(chǔ)庫類 142 8.4.4 定義連接字符串 142 8.4.5 配置應(yīng)用程序 143 8.4.6 創(chuàng)建數(shù)據(jù)庫遷移 145 8.4.7 創(chuàng)建種子數(shù)據(jù) 145 8.5 添加分頁 148 8.5.1 顯示頁面鏈接 149 8.5.2 改進(jìn)URL 155 8.6 更改內(nèi)容樣式 157 8.6.1 安裝Bootstrap包 157 8.6.2 將Bootstrap樣式應(yīng)用于布局 157 8.6.3 創(chuàng)建分部視圖 159 8.7 小結(jié) 160 第9章 SportsStore的導(dǎo)航 161 9.1 添加導(dǎo)航控件 161 9.1.1 過濾產(chǎn)品列表 161 9.1.2 優(yōu)化URL結(jié)構(gòu) 164 9.1.3 構(gòu)建類別導(dǎo)航菜單 167 9.1.4 更正頁數(shù) 172 9.2 構(gòu)建購物車 174 9.2.1 定義購物車模型 174 9.2.2 添加Add To Cart按鈕 177 9.2.3 啟用會(huì)話 179 9.2.4 實(shí)現(xiàn)Cart控制器 180 9.2.5 顯示購物車的內(nèi)容 181 9.3 小結(jié) 183 第 10章 完成購物車 184 10.1 使用服務(wù)優(yōu)化購物車模型 184 10.1.1 創(chuàng)建支持存儲(chǔ)感知的Cart類 184 10.1.2 注冊(cè)服務(wù) 185 10.1.3 簡化Cart控制器 185 10.2 完成購物車功能 186 10.2.1 從購物車中刪除商品 186 10.2.2 添加購物車摘要小部件 188 10.3 提交訂單 190 10.3.1 創(chuàng)建模型類 190 10.3.2 添加結(jié)賬流程 191 10.3.3 實(shí)現(xiàn)訂單處理 193 10.3.4 完成Order控制器 195 10.3.5 顯示驗(yàn)證錯(cuò)誤 198 10.3.6 顯示摘要頁面 199 10.4 小結(jié) 199 第 11章 SportsStore的管理 200 11.1 管理訂單 200 11.1.1 增強(qiáng)模型 200 11.1.2 添加操作方法和視圖 201 11.2 添加目錄管理 203 11.2.1 創(chuàng)建CRUD控制器 203 11.2.2 實(shí)現(xiàn)列表視圖 205 11.2.3 編輯商品 206 11.2.4 創(chuàng)建新的商品 216 11.2.5 刪除商品 217 11.3 小結(jié) 220 第 12章 SportsStore的安全和部署 221 12.1 保護(hù)管理功能 221 12.1.1 創(chuàng)建身份標(biāo)識(shí)數(shù)據(jù)庫 221 12.1.2 應(yīng)用基本授權(quán)策略 224 12.1.3 創(chuàng)建賬戶控制器和視圖 226 12.1.4 測(cè)試安全策略 229 12.2 部署應(yīng)用程序 229 12.2.1 創(chuàng)建數(shù)據(jù)庫 230 12.2.2 準(zhǔn)備應(yīng)用程序 231 12.2.3 應(yīng)用數(shù)據(jù)庫遷移 234 12.2.4 管理數(shù)據(jù)庫填充 234 12.2.5 部署應(yīng)用程序 237 12.3 小結(jié) 239 第 13章 使用Visual Studio Code 240 13.1 設(shè)置開發(fā)環(huán)境 240 13.1.1 安裝Node.js 240 13.1.2 檢查Node.js安裝狀態(tài) 241 13.1.3 安裝Git 241 13.1.4 檢查Git安裝狀態(tài) 241 13.1.5 安裝Bower 241 13.1.6 安裝.NET Core 242 13.1.7 檢查.NET Core安裝狀態(tài) 242 13.1.8 安裝Visual Studio Code 242 13.1.9 檢查Visual Studio Code安裝 狀態(tài) 243 13.1.10 安裝Visual Studio Code的 C#擴(kuò)展 243 13.2 創(chuàng)建ASP.NET Code項(xiàng)目 244 13.3 使用Visual Studio Code準(zhǔn)備項(xiàng)目 244 13.3.1 管理客戶端軟件包 245 13.3.2 配置應(yīng)用程序 246 13.3.3 構(gòu)建和運(yùn)行項(xiàng)目 246 13.4 重新創(chuàng)建PartyInvites應(yīng)用程序 246 13.4.1 創(chuàng)建模型和存儲(chǔ)庫 247 13.4.2 創(chuàng)建數(shù)據(jù)庫 249 13.4.3 創(chuàng)建控制器和視圖 250 13.5 Visual Studio Code中的單元測(cè)試 254 13.5.1 創(chuàng)建單元測(cè)試 254 13.5.2 運(yùn)行測(cè)試 255 13.6 小結(jié) 255 第二部分 ASP.NET Core MVC詳解 第 14章 配置應(yīng)用程序 257 14.1 準(zhǔn)備示例項(xiàng)目 257 14.2 配置項(xiàng)目 259 14.2.1 將包添加到項(xiàng)目中 259 14.2.2 將工具包添加到項(xiàng)目中 261 14.3 理解Program類 261 14.4 了解Startup類 264 14.4.1 了解ASP.NET服務(wù) 266 14.4.2 了解ASP.NET中間件 268 14.4.3 了解如何調(diào)用Configure方法 275 14.4.4 添加其他中間件 278 14.5 配置應(yīng)用程序 281 14.5.1 創(chuàng)建JSON配置文件 283 14.5.2 使用配置數(shù)據(jù) 284 14.5.3 配置日志記錄 285 14.5.4 配置依賴注入 288 14.6 配置MVC服務(wù) 289 14.7 處理復(fù)雜配置 290 14.7.1 創(chuàng)建不同的外部配置文件 290 14.7.2 創(chuàng)建不同的配置方法 292 14.7.3 創(chuàng)建不同的配置類 293 14.8 小結(jié) 294 第 15章 URL路由 295 15.1 準(zhǔn)備示例項(xiàng)目 295 15.1.1 創(chuàng)建模型類 296 15.1.2 創(chuàng)建Example控制器 296 15.1.3 創(chuàng)建視圖 298 15.2 介紹URL模式 299 15.3 創(chuàng)建和注冊(cè)簡單路由 299 15.4 定義默認(rèn)值 300 15.5 使用靜態(tài)URL片段 303 15.6 定義自定義片段變量 306 15.6.1 使用自定義片段變量作為 操作方法的參數(shù) 308 15.6.2 定義可選的URL片段 309 15.6.3 定義可變長度路由 311 15.7 約束路由 312 15.7.1 使用正則表達(dá)式約束路由 314 15.7.2 使用類型和值約束 316 15.7.3 組合約束 316 15.7.4 定義自定義約束 318 15.8 使用特性路由 320 15.8.1 準(zhǔn)備特性路由 320 15.8.2 應(yīng)用特性路由 321 15.8.3 應(yīng)用路由約束 323 15.9 小結(jié) 323 第 16章 高級(jí)路由特性 324 16.1 準(zhǔn)備示例項(xiàng)目 324 16.2 在視圖中生成傳出的URL 325 16.2.1 創(chuàng)建傳出的鏈接 326 16.2.2 創(chuàng)建非鏈接的URL 333 16.3 自定義路由系統(tǒng) 334 16.3.1 更改路由系統(tǒng)配置 335 16.3.2 創(chuàng)建自定義路由類 336 16.4 使用區(qū)域 344 16.4.1 創(chuàng)建區(qū)域 344 16.4.2 創(chuàng)建區(qū)域路由 345 16.4.3 填充區(qū)域 346 16.4.4 生成區(qū)域中指向操作的鏈接 347 16.5 URL模式最佳實(shí)踐 348 16.5.1 保持URL的整潔性 348 16.5.2 GET方法和POST方法: 選擇最合適的方法 349 16.6 小結(jié) 349 第 17章 控制器和操作 350 17.1 準(zhǔn)備示例項(xiàng)目 350 17.2 理解控制器 353 17.3 創(chuàng)建控制器 353 17.3.1 創(chuàng)建POCO控制器 353 17.3.2 使用控制器基類 355 17.4 接收上下文數(shù)據(jù) 355 17.4.1 從Context對(duì)象中接收數(shù)據(jù) 356 17.4.2 使用操作方法參數(shù) 359 17.5 生成響應(yīng) 360 17.5.1 使用Context對(duì)象生成響應(yīng) 360 17.5.2 理解操作結(jié)果 361 17.5.3 生成HTML響應(yīng) 362 17.5.4 執(zhí)行重定向 369 17.5.5 返回不同類型的內(nèi)容 374 17.5.6 響應(yīng)文件的內(nèi)容 376 17.5.7 返回錯(cuò)誤和HTTP狀態(tài)碼 377 17.5.8 理解其他操作結(jié)果類 378 17.6 小結(jié) 378 第 18章 依賴注入 379 18.1 準(zhǔn)備示例項(xiàng)目 379 18.1.1 創(chuàng)建模型和存儲(chǔ)庫 380 18.1.2 創(chuàng)建控制器和視圖 381 18.1.3 創(chuàng)建單元測(cè)試項(xiàng)目 383 18.2 創(chuàng)建松散耦合的組件 383 18.3 ASP.NET的依賴注入 387 18.3.1 準(zhǔn)備依賴注入 388 18.3.2 配置服務(wù)提供者 389 18.3.3 對(duì)具有依賴項(xiàng)的控制器進(jìn)行 單元測(cè)試 390 18.3.4 使用依賴關(guān)系鏈 390 18.3.5 對(duì)具體類型使用依賴注入 393 18.4 服務(wù)的生命周期 394 18.4.1 使用瞬態(tài)生命周期 395 18.4.2 使用作用域的生命周期 398 18.4.3 使用單例生命周期 399 18.5 使用操作注入 400 18.6 使用屬性注入特性 401 18.7 手動(dòng)請(qǐng)求實(shí)現(xiàn)對(duì)象 401 18.8 小結(jié) 402 第 19章 過濾器 403 19.1 準(zhǔn)備示例項(xiàng)目 403 19.1.1 啟用SSL 404 19.1.2 創(chuàng)建控制器和視圖 404 19.2 使用過濾器 405 19.3 實(shí)現(xiàn)過濾器 408 19.4 使用授權(quán)過濾器 409 19.5 使用操作過濾器 412 19.5.1 創(chuàng)建操作過濾器 412 19.5.2 創(chuàng)建異步操作過濾器 414 19.6 使用結(jié)果過濾器 414 19.6.1 創(chuàng)建結(jié)果過濾器 415 19.6.2 創(chuàng)建異步結(jié)果過濾器 416 19.6.3 創(chuàng)建混合操作/結(jié)果過濾器 417 19.7 使用異常過濾器 419 19.8 為過濾器使用依賴注入 421 19.8.1 解決過濾器依賴項(xiàng) 421 19.8.2 管理過濾器的生命周期 424 19.9 創(chuàng)建全局過濾器 426 19.10 理解和更改過濾器的執(zhí)行順序 428 19.11 小結(jié) 430 第 20章 API控制器 431 20.1 準(zhǔn)備示例項(xiàng)目 431 20.1.1 創(chuàng)建模型和存儲(chǔ)庫 431 20.1.2 創(chuàng)建控制器和視圖 433 20.2 REST控制器的作用 435 20.2.1 速度問題 435 20.2.2 效率問題 436 20.2.3 開放性問題 436 20.3 REST和API控制器 436 20.3.1 創(chuàng)建API控制器 437 20.3.2 測(cè)試API控制器 440 20.3.3 在瀏覽器中使用API控制器 443 20.4 內(nèi)容格式 445 20.4.1 默認(rèn)內(nèi)容策略 445 20.4.2 內(nèi)容協(xié)商 446 20.4.3 指定action數(shù)據(jù)格式 448 20.4.4 從路由或查詢字符串獲取 數(shù)據(jù)格式 449 20.4.5 啟用完成內(nèi)容協(xié)商 450 20.4.6 接收不同的數(shù)據(jù)格式 451 20.5 小結(jié) 452 第 21章 視圖 453 21.1 準(zhǔn)備示例項(xiàng)目 453 21.2 創(chuàng)建自定義視圖引擎 454 21.2.1 創(chuàng)建自定義IView 456 21.2.2 創(chuàng)建IViewEngine實(shí)現(xiàn) 456 21.2.3 注冊(cè)自定義視圖引擎 457 21.2.4 測(cè)試視圖引擎 458 21.3 使用Razor引擎 459 21.3.1 準(zhǔn)備示例項(xiàng)目 459 21.3.2 Razor視圖 461 21.4 將動(dòng)態(tài)內(nèi)容添加到Razor視圖中 463 21.4.1 使用布局部分 464 21.4.2 使用分部視圖 468 21.4.3 將JSON內(nèi)容添加到視圖中 469 21.5 配置Razor 471 21.6 小結(jié) 475 第 22章 視圖組件 476 22.1 準(zhǔn)備示例項(xiàng)目 476 22.1.1 創(chuàng)建模型和存儲(chǔ)庫 476 22.1.2 創(chuàng)建控制器和視圖 478 22.1.3 配置應(yīng)用程序 480 22.2 視圖組件 481 22.3 創(chuàng)建視圖組件 481 22.3.1 創(chuàng)建POCO視圖組件 482 22.3.2 從ViewComponent基類派生 483 22.3.3 視圖組件結(jié)果 484 22.3.4 獲取上下文數(shù)據(jù) 487 22.3.5 創(chuàng)建異步視圖組件 491 22.4 創(chuàng)建混合的控制器/視圖組件類 493 22.4.1 創(chuàng)建混合視圖 493 22.4.2 應(yīng)用混合類 495 22.5 小結(jié) 495 第 23章 標(biāo)簽助手 496 23.1 準(zhǔn)備示例項(xiàng)目 496 23.1.1 創(chuàng)建模型和存儲(chǔ)庫 496 23.1.2 創(chuàng)建控制器、布局與視圖 497 23.1.3 配置應(yīng)用程序 499 23.2 創(chuàng)建標(biāo)簽助手 500 23.2.1 定義標(biāo)簽助手類 501 23.2.2 注冊(cè)標(biāo)簽助手 503 23.2.3 使用標(biāo)簽助手 503 23.2.4 管理標(biāo)簽助手的作用域 505 23.3 高級(jí)標(biāo)簽助手特性 508 23.3.1 創(chuàng)建縮寫元素 508 23.3.2 前置和追加內(nèi)容與元素 510 23.3.3 使用依賴注入獲取視圖 上下文數(shù)據(jù) 512 23.3.4 使用視圖模型 514 23.3.5 協(xié)調(diào)標(biāo)簽助手 516 23.3.6 抑制輸出元素 517 23.4 小結(jié) 518 第 24章 使用表單標(biāo)簽助手 519 24.1 準(zhǔn)備示例項(xiàng)目 519 24.2 使用form元素 521 24.2.1 設(shè)置form目標(biāo) 521 24.2.2 使用防偽特性 522 24.3 使用input元素 524 24.3.1 配置input元素 524 24.3.2 格式化數(shù)據(jù) 526 24.4 使用label元素 528 24.5 使用select和option元素 529 24.5.1 使用數(shù)據(jù)源填充select元素 530 24.5.2 從枚舉中生成option元素 531 24.6 使用textarea元素 535 24.7 驗(yàn)證表單標(biāo)簽助手 536 24.8 小結(jié) 536 第 25章 使用其他內(nèi)置標(biāo)簽助手 537 25.1 準(zhǔn)備示例項(xiàng)目 537 25.2 使用宿主環(huán)境標(biāo)簽助手 538 25.3 使用JavaScript和CSS標(biāo)簽助手 539 25.3.1 管理JavaScript文件 539 25.3.2 管理CSS樣式表 545 25.4 使用超鏈接元素 547 25.5 使用圖像元素 548 25.6 使用數(shù)據(jù)緩存 549 25.6.1 設(shè)置緩存過期時(shí)間 551 25.6.2 使用緩存變體 552 25.7 小結(jié) 555 第 26章 模型綁定 556 26.1 準(zhǔn)備示例項(xiàng)目 556 26.1.1 創(chuàng)建模型和存儲(chǔ)庫 556 26.1.2 創(chuàng)建控制器和視圖 558 26.1.3 配置應(yīng)用 559 26.2 理解模型綁定 560 26.2.1 默認(rèn)綁定值 561 26.2.2 綁定簡單值 562 26.2.3 綁定復(fù)雜類型 562 26.2.4 綁定數(shù)組和集合 570 26.3 指定模型綁定源 575 26.3.1 選擇標(biāo)準(zhǔn)綁定源 576 26.3.2 使用請(qǐng)求頭作為綁定源 577 26.3.3 使用請(qǐng)求體作為綁定源 579 26.4 小結(jié) 581 第 27章 模型驗(yàn)證 582 27.1 準(zhǔn)備示例項(xiàng)目 582 27.1.1 創(chuàng)建模型 583 27.1.2 創(chuàng)建控制器 583 27.1.3 創(chuàng)建布局和視圖 584 27.2 理解模型驗(yàn)證的需求 586 27.3 顯式地驗(yàn)證模型 586 27.3.1 為用戶顯示驗(yàn)證錯(cuò)誤消息 588 27.3.2 顯示驗(yàn)證消息 589 27.3.3 顯示屬性級(jí)驗(yàn)證消息 592 27.3.4 顯示模型級(jí)驗(yàn)證消息 593 27.4 使用元數(shù)據(jù)指定驗(yàn)證規(guī)則 595 27.5 執(zhí)行客戶端驗(yàn)證 599 27.6 執(zhí)行遠(yuǎn)程驗(yàn)證 601 27.7 小結(jié) 603 第 28章 ASP.NET Core Identity 入門 604 28.1 準(zhǔn)備示例項(xiàng)目 604 28.2 設(shè)置ASP.NET Core Identity 607 28.2.1 創(chuàng)建用戶類 607 28.2.2 創(chuàng)建數(shù)據(jù)庫上下文類 608 28.2.3 配置數(shù)據(jù)庫連接串 608 28.2.4 創(chuàng)建ASP.NET Core Identity 數(shù)據(jù)庫 610 28.3 使用ASP.NET Core Identity 610 28.3.1 列舉用戶賬戶 610 28.3.2 創(chuàng)建用戶 612 28.3.3 驗(yàn)證密碼 615 28.3.4 驗(yàn)證用戶詳情 620 28.4 完成管理功能 624 28.4.1 實(shí)現(xiàn)刪除功能 625 28.4.2 實(shí)現(xiàn)編輯功能 626 28.5 小結(jié) 629 第 29章 應(yīng)用ASP.NET Core Identity 630 29.1 準(zhǔn)備示例項(xiàng)目 630 29.2 驗(yàn)證用戶 630 29.2.1 準(zhǔn)備實(shí)現(xiàn)驗(yàn)證 632 29.2.2 添加用戶驗(yàn)證 634 29.2.3 測(cè)試驗(yàn)證 636 29.3 使用角色授權(quán)用戶 636 29.3.1 創(chuàng)建與刪除角色 637 29.3.2 管理角色成員 641 29.3.3 使用角色進(jìn)行授權(quán) 644 29.4 播種數(shù)據(jù)庫 647 29.5 小結(jié) 650 第30章 ASP.NET Core Identity 進(jìn)階 651 30.1 準(zhǔn)備示例項(xiàng)目 651 30.2 添加自定義用戶屬性 652 30.2.1 準(zhǔn)備數(shù)據(jù)庫遷移 654 30.2.2 測(cè)試自定義屬性 655 30.3 使用聲明和策略 655 30.3.1 聲明 656 30.3.2 創(chuàng)建聲明 659 30.3.3 使用策略 661 30.3.4 使用策略對(duì)資源授權(quán)訪問 666 30.4 使用第三方驗(yàn)證 670 30.4.1 注冊(cè)Google應(yīng)用 670 30.4.2 啟用Google驗(yàn)證 671 30.5 小結(jié) 674 第31章 模型約定與操作約束 675 31.1 準(zhǔn)備示例項(xiàng)目 675 31.2 使用應(yīng)用程序模型和模型約定 677 31.2.1 理解應(yīng)用程序模型 678 31.2.2 理解模型約定角色 680 31.2.3 創(chuàng)建模型約定 680 31.2.4 理解模型約定的執(zhí)行順序 684 31.2.5 創(chuàng)建全局模型約定 685 31.3 使用操作約束 686 31.3.1 準(zhǔn)備示例項(xiàng)目 687 31.3.2 操作約束的作用 688 31.3.3 創(chuàng)建操作約束 689 31.3.4 在操作約束中處理依賴 692 31.4 小結(jié) 694
你還可能感興趣
我要評(píng)論
|