第 1 章 初始化ASP.NET Core 應用程式
1.1 應用程式的啟動過程
1.2 WebApplicationBuilder類別
1.3 啟動應用程式
1.4 使用Host初始化應用程式
1.4.1 通用主機
1.4.2 範例:簡單的通用主機
1.4.3 Web主機
1.5 設定應用程式的URL
1.5.1 呼叫UseUrls()方法
1.5.2 使用WebApplication類別的Urls屬性
1.5.3 呼叫Run()方法時傳遞URL
1.5.4 透過ServerAddressesFeature物件設定URL
1.5.5 使用命令列參數
1.5.6 使用設定檔
1.5.7 使用環境變數
1.5.8 使用launchSettings.json檔案
1.5.9 Kestrel伺服器的偵聽位址
1.5.10 透過HTTP.sys設定URL
1.5.11 PreferHostingUrls() 方法的作用
1.6 應用程式生命週期事件
第 2 章 執行環境
2.1 定義執行環境
2.2 Is{EnvironmentName}擴充方法
2.3 多執行環境下的設定檔
2.4 用於環境篩選的Razor標記
2.5 執行環境與相依注入
第 3 章 相依注入
3.1 相依注入與服務容器
3.1.1 ServiceCollection類別
3.1.2 ServiceProvider類別
3.2 .NET專案中的相依注入
3.3 ASP.NET Core專案中的相依注入
3.4 建構存在相依關係的服務
3.5 服務的生存期
3.6 GetService()方法與GetRequiredService()方法的區別
3.7 注入多個服務實例
3.8 容易被忽略的問題
第 4 章 設定應用程式
4.1 設定的基本結構
4.2 在.NET應用程式中使用設定
4.3 在ASP.NET Core應用程式中使用設定
4.3.1 設定的資料來源
4.3.2 查看所有設定資訊
4.4 IConfigurationBuilder介面
4.5 ConfigurationManager類別
4.6 IConfigurationSource介面與IConfigurationProvider介面
4.6.1 自訂擴充點
4.6.2 範例:來自CSV檔案的設定
4.7 JSON設定
4.7.1 範例:存取JSON陣列物件
4.7.2 範例:自動重新載入設定
4.8 XML設定
4.9 環境變數
4.9.1 設定環境變數首碼
4.9.2 替換預設的ASPNETCORE_首碼
4.9.3 範例:替換環境變數首碼
4.9.4 分層設定結構
4.10 命令列參數
4.11 ini設定
4.12 設定與相依注入
4.12.1 範例:將IConfiguration注入MVC控制器
4.12.2 範例:透過設定選擇雜湊演算法
4.13 連結多棵設定樹
第 5 章 選項模式
5.1 選項模式概述
5.2 服務容器的擴充方法
5.3 各介面之間的關係
5.3.1 IConfigureOptions
5.3.2 IPostConfigureOptions
5.3.3 IValidateOptions
5.3.4 IOptionsFactory
5.3.5 完整的流程圖
5.4 選項類別的封裝介面
5.4.1 範例:在MVC 控制器中存取選項類別
5.4.2 範例:自動更新選項類別
5.5 附帶名稱的選項群組
5.6 後期設定
5.7 選項類別的驗證
5.7.1 內建的驗證方式
5.7.2 使用資料批註
5.8 處理帶有參數的建構函式
5.9 直接實現IOptions介面
第 6 章 HTTP管道
6.1 HTTP管道與中介軟體
6.2 中介軟體的實現方法
6.3 透過委託實現中介軟體
6.3.1 範例:Use()方法的簡單用法
6.3.2 HTTP管道的「短路」
6.3.3 Run()方法
6.4 透過類別實現中介軟體
6.4.1 帶有參數的中介軟體
6.4.2 中介軟體類別與相依注入
6.5 透過IMiddleware介面實現中介軟體
6.6 終結點
6.6.1 範例:常見的HTTP請求方式
6.6.2 範例:同時使用Razor Pages和MVC
6.6.3 為終結點分配名稱
6.6.4 中繼資料
6.7 有條件地執行中介軟體
6.7.1 範例:呼叫包含user_id欄位的中介軟體
6.7.2 範例:只允許以POST方式呼叫Web API
第 7 章 HTTP狀態儲存
7.1 HTTP上下文
7.1.1 範例:在中介軟體中設定回應表頭
7.1.2 範例:在Map*()方法中存取HTTP上下文
7.1.3 範例:使用Razor標記呈現HTTP請求表頭
7.1.4 範例:在MVC中存取HTTP上下文
7.2 HTTP訊息表頭
7.2.1 HeaderNames類別
7.2.2 訊息表頭的分類
7.2.3 分析複雜訊息表頭
7.3 查詢字串
7.3.1 讀取查詢參數
7.3.2 多值參數
7.4 表單資料
7.4.1 讀取簡單的表單資料
7.4.2 檔案上傳
7.5 Cookie
7.6 HttpContext類別的Items屬性
7.7 階段
7.7.1 ISession介面
7.7.2 設定階段Cookie的名稱
7.7.3 範例:將階段資料儲存到JSON檔案中
第 8 章 Razor頁面
8.1 Razor頁面的特點
8.2 Razor語法
8.2.1 兩種運算式
8.2.2 程式區塊
8.2.3 註釋
8.2.4 流程控制
8.3 開啟Razor頁面功能
8.4 Razor分頁檔
8.5 分頁檔的搜索路徑
8.5.1 設定RazorPagesOptions選項類別
8.5.2 便捷的擴充方法
8.6 頁面路由
8.6.1 透過@page指令設定路由規則
8.6.2 透過約定模型定義路由規則
8.7 頁面模型類別
8.7.1 頁面自身作為模型類別
8.7.2 從PageModel衍生類別
8.7.3 透過特性類別實現頁面模型類別
8.8 頁面處理常式
8.8.1 通用的處理常式
8.8.2 解決POST請求時出現的錯誤
8.8.3 使用多個處理常式
8.8.4 透過路由參數選擇處理常式
8.8.5 自訂的處理常式模型
第 9 章 MVC框架
9.1 MVC基本概念
9.2 啟用MVC功能
9.3 控制器
9.3.1 範例:從ControllerBase類別衍生
9.3.2 範例:從Controller類別衍生
9.3.3 範例:使用ControllerAttribute
9.3.4 範例:使用Controller尾碼
9.3.5 自訂控制器的名稱
9.3.6 範例:ControllerNameAttribute類別
9.3.7 自訂操作方法的名稱
9.3.8 範例:CustActionNameAttribute類別
9.3.9 範例:ActionNameAttribute類別
9.4 MVC路由規則
9.4.1 全域路由規則
9.4.2 範例:註冊兩筆全域路由規則
9.4.3 局部路由規則
9.4.4 IRouteTemplateProvider介面
9.4.5 透過實現約定介面定義路由規則
9.4.6 範例:CustPrefixRouteConvention類別
9.5 限制操作方法所支援的HTTP請求
9.5.1 範例:只支援HTTP-PUT請求的操作方法
9.5.2 內建特性類別
9.6 區域
9.7 視圖
9.7.1 視圖檔案的預設存放路徑
9.7.2 自訂視圖的路徑格式
9.7.3 版面配置視圖
9.7.4 範例:版面配置視圖的查詢順序
9.7.5 範例:設定Razor Pages版面配置視圖的查詢路徑
9.7.6 _ViewImports與_ViewStart檔案
9.7.7 範例:_ViewStart檔案的替換行為
9.8 IViewLocationExpander介面
9.8.1 範例:多版本視圖
9.8.2 範例:根據URL查詢參數擴充視圖路徑
9.8.3 LanguageViewLocationExpander類別
9.9 局部視圖
9.9.1 範例:成績單
9.9.2 範例:導覽列
9.10 視圖元件
9.10.1 範例:一個簡單的視圖元件
9.10.2 視圖檔案的查詢路徑
9.10.3 範例:帶有參數的視圖元件
9.10.4 透過標記幫助器呼叫視圖元件
9.10.5 範例:Greeting視圖元件
9.10.6 範例:在MVC控制器中呼叫視圖元件
9.10.7 兩個特性類別
9.11 辨識其他程式集中的控制器
9.11.1 範例:使用ApplicationPartAttribute類別
9.11.2 範例:使用AddApplicationPart()擴充方法
9.11.2 範例:使用ApplicationPartManager類別
第 10 章 模型綁定
10.1 概述
10.2 自動綁定
10.2.1 範例:計算機
10.2.2 範例:綁定陣列類型的資料
10.2.3 範例:綁定複雜類型
10.2.4 多個參數的模型綁定
10.2.5 範例:綁定3個參數
10.2.6 字典類型的模型綁定
10.2.7 範例:綁定字典資料
10.2.8 範例:綁定IFormCollection類型
10.2.9 範例:MD5計算機
10.2.10 綁定IFormFile和IFormFileCollection類型
10.2.11 範例:上傳一個文字檔
10.2.12 範例:上傳多個檔案
10.3 設定模型綁定的來源
10.3.1 範例:綁定HTTP訊息表頭
10.3.2 範例:從HTTP訊息文字提取資料
10.3.3 範例:與路由參數綁定
10.3.4 範例:FromServices特性的使用
10.3.5 範例:混合使用From*特性類別
10.3.6 範例:將From*特性類別應用於屬性成員
10.4 自訂IValueProvider介面
10.4.1 範例:由自訂字串提供的值
10.4.2 範例:CookieValueProvider
10.5 IModelBinder介面
10.5.1 內建綁定器
10.5.2 範例:AddressInfoModelBinder類別
10.6 BindRequiredAttribute類別與BindNeverAttribute類別
10.7 綁定到屬性成員
10.7.1 範例:控制器的屬性綁定
10.7.2 範例:PageModel中的屬性綁定
10.7.3 範例:CancellationToken類型的屬性綁定
第 11 章 Web API
11.1 Web API基礎
11.1.1 ControllerBase類別與Controller類別
11.1.2 ApiController特性
11.1.3 範例:一個簡單的Web API
11.1.4 範例:以POST方式提交資料
11.2 XML格式
11.2.1 範例:常規的XML序列化方案
11.2.2 範例:使用XmlDataContractSerializer方案
11.3 選擇回應格式
11.3.1 範例:透過Accept訊息表頭選擇回應格式
11.3.2 範例:使用格式篩檢程式
11.4 自訂格式
11.4.1 範例:CustDataInputFormatter類別
11.4.2 範例:BytesToHexOutputFormatter類別
11.5 極小API
11.5.1 範例:一些簡單的極小API例子
11.5.2 範例:在極小API上使用資料來源特性
11.5.3 上傳檔案.
11.5.4 範例:直接讀取檔案串流
11.5.5 範例:上傳多個檔案
11.5.6 IResult介面
11.5.7 範例:Results類別的使用
11.6 API瀏覽功能
11.6.1 IApiDescriptionGroupCollectionProvider介面
11.6.2 範例:列出已定義的Web API
11.6.3 API約定
11.6.4 Swagger框架
11.6.5 範例:使用Swagger生成API文件
第 12 章 篩檢程式
12.1 篩檢程式的執行過程
12.1.1 範例:觀察篩檢程式的執行順序
12.2.2 範例:同時實現多個介面
12.2 篩檢程式的作用域
12.1.1 範例:全域篩檢程式
12.2.2 範例:特性化的篩檢程式
12.3 在Razor Pages中使用篩檢程式
12.1.1 範例:在Razor標記頁和頁面模型類別上應用篩檢程式
12.2.2 範例:在Razor Pages中應用全域篩檢程式
12.2.3 頁面處理常式的篩檢程式
12.2.4 範例:實現IPageFilter介面
12.4 非同步篩檢程式介面
12.4.1 範例:實現非同步授權篩檢程式
12.4.2 範例:實現非同步資源篩檢程式
12.5 IAlwaysRunResultFilter介面
12.6 IFilterFactory介面
12.6.1 範例:存取服務容器中的篩檢程式
12.6.2 範例:使用TypeFilterAttribute類別建立篩檢程式實例
12.6.2 範例:使用ServiceFilterAttribute 類別存取服務容器中的篩檢程式
12.7 篩檢程式的執行順序
12.7.1 範例:篩檢程式的作用域與執行順序
12.7.2 範例:自訂篩檢程式的執行順序
12.8 抽象的篩檢程式特性類別
12.8.1 範例:重寫ActionFilterAttribute類別
12.8.2 範例:重寫ExceptionFilterAttribute類別
第 13 章 標記幫助器
13.1 標記幫助器簡介
13.1.1 範例:為標記增加「加粗」功能
13.1.2 範例:
13.1.3 範例:使用標記幫助器設定HTML元素的文字樣式
13.2 將標記幫助器註冊到服務容器
13.3 內建的標記幫助器
13.3.1 範例:快取當前時間
13.3.2 範例:用
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。