深度解析 ASP.NET MVC 5
分享公司內部培訓資料,如有錯誤,請批評指正。
- ASP.NET MVC基礎
- IoC容器
- ASP.NET MVC可擴展性
- ASP.NET MVC Filters & Cache
- ASP.NET MVC AJAX
- ASP.NET MVC Client Validation
- 資源文件目錄結構
- Model目錄結構
- View目錄結構
- View分解原則
- 關於Web.config
1. ASP.NET MVC基礎
1.1. 一次請求的生命周期
- 一次請求從客戶端/瀏覽器開始,客戶端將請求發送給IIS,IIS啟動ASP.NET MVC對應的應用程序。
- 在ASP.NET MVC內部,通過路由(Routing)開始匹配的路由規則。
- 在執行Action之前,首先會執行 Action 對應的 Filter,如 [Authorize]
- 然后執行 Action,這里便是執行我們的業務邏輯。
- 如果有視圖/頁面,View Engine返回相應的HTML。
- 在Action執行完成后,兩樣可以執行Filter來處理相應邏輯。
1.2. Application 啟動
- MvcApplication繼承自 HttpApplication 類,ASP.NET MVC啟動后,首先執行的就是這個類。
- 最先進入的是 Application_Start 方法,在這個方法里,可以初始化基本的應用/類庫。
- 另一種初始化方式如上圖中的下方的代碼截圖,以特性的方式初始化應用/類庫。
1.3. Routing 兩種形式
在ASP.NET MVC 5中,定義Route有兩種形式:
- 在 Application_Start 中定義 Route, 如上圖中上方截圖。
- 在 Controller/Action 中以 Attribute 方式直接定義 Route,如上圖中下方截圖。
1.4. Filters (ActionFilterAttribute)
- 前面我們提到過,在執行Action之前和之后,可以執行一些Filter處理一些事情,如 [Authorize],就是在執行 Action 之前,判斷必須有賬號登錄。
- 我們也可以自定義一些Filter來處理我們自己的事情,如角色權限判斷,上圖中左側截圖即是一個自定義的 Filter。
1.5. Controller & Action
- Controller是所有Controller的基類,所有Controller必須繼承自Controller類。
- Controller類可以使用 Filter,表示此類下的所有Action都應用這個 Fitler。
- Action可以應用 GET, POST, PUT 和 DELETE 等方法。
- Action返回的結果可以是 View, PartialView, Redirect, Json, JavaScript, Content 和 File 等類型。
1.6. View / View Engine
- View Engine可以被重寫和定義,這里使用的 Razor View Engine。
- 使用 View() 和 PartialView() 返回視圖/HTML。
- 查找視圖時,如果未指定路徑,默認查找無則是 Views/{controller name}/{action name}.cshtml,如果沒有則查找 Views/Shared/{action name}.cshtml。
- Shared/_Layout.cshtml是View的默認框架模板,也可以View中單獨指定。
2. IoC容器
2.1. 什么是IoC容器?
2.2. Unity
3. ASP.NET MVC可擴展性
3.1. Controller 擴展性
3.2. Model 擴展性
3.3. View Engine
4. ASP.NET MVC Filters & Cache
5. ASP.NET MVC AJAX
6. ASP.NET MVC Client Validation
7. 資源文件目錄結構
8. Model目錄結構
9. View目錄結構
10. View分解原則
11. 關於Web.config